problemeasyalgorithmsleetcode-3131leetcode 3131leetcode3131

Find the Integer Added to Array I

EasyUpdated: Aug 2, 2025
Practice on:

Problem

You are given two arrays of equal length, nums1 and nums2.

Each element in nums1 has been increased (or decreased in the case of negative) by an integer, represented by the variable x.

As a result, nums1 becomes equal to nums2. Two arrays are considered equal when they contain the same integers with the same frequencies.

Return the integer x.

Examples

Example 1


Input: nums1 = [2,6,4], nums2 = [9,7,5]

Output: 3

Explanation:

The integer added to each element of `nums1` is 3.

Example 2


Input: nums1 = [10], nums2 = [5]

Output: -5

Explanation:

The integer added to each element of `nums1` is -5.

Example 3


Input: nums1 = [1,1,1,1], nums2 = [1,1,1,1]

Output: 0

Explanation:

The integer added to each element of `nums1` is 0.

Constraints

  • 1 <= nums1.length == nums2.length <= 100
  • 0 <= nums1[i], nums2[i] <= 1000
  • The test cases are generated in a way that there is an integer x such that nums1 can become equal to nums2 by adding x to each element of nums1.

Solution

Method 1 – Difference of Sums

Intuition

If every element in nums1 is increased by x to get nums2, then the difference between the sum of nums2 and the sum of nums1, divided by the length, gives x.

Approach

  1. Compute the sum of nums1 and nums2.
  2. The answer x is (sum(nums2) - sum(nums1)) // n, where n is the length of the arrays.
  3. Return x.

Code

C++
class Solution {
public:
    int findTheIntegerAddedToArray(vector<int>& nums1, vector<int>& nums2) {
        int s1 = accumulate(nums1.begin(), nums1.end(), 0);
        int s2 = accumulate(nums2.begin(), nums2.end(), 0);
        return (s2 - s1) / nums1.size();
    }
};
Go
func findTheIntegerAddedToArray(nums1, nums2 []int) int {
    s1, s2 := 0, 0
    for _, v := range nums1 { s1 += v }
    for _, v := range nums2 { s2 += v }
    return (s2 - s1) / len(nums1)
}
Java
class Solution {
    public int findTheIntegerAddedToArray(int[] nums1, int[] nums2) {
        int s1 = 0, s2 = 0;
        for (int v : nums1) s1 += v;
        for (int v : nums2) s2 += v;
        return (s2 - s1) / nums1.length;
    }
}
Kotlin
class Solution {
    fun findTheIntegerAddedToArray(nums1: IntArray, nums2: IntArray): Int {
        val s1 = nums1.sum()
        val s2 = nums2.sum()
        return (s2 - s1) / nums1.size
    }
}
Python
class Solution:
    def findTheIntegerAddedToArray(self, nums1: list[int], nums2: list[int]) -> int:
        return (sum(nums2) - sum(nums1)) // len(nums1)
Rust
impl Solution {
    pub fn find_the_integer_added_to_array(nums1: Vec<i32>, nums2: Vec<i32>) -> i32 {
        (nums2.iter().sum::<i32>() - nums1.iter().sum::<i32>()) / nums1.len() as i32
    }
}
TypeScript
class Solution {
    findTheIntegerAddedToArray(nums1: number[], nums2: number[]): number {
        const s1 = nums1.reduce((a, b) => a + b, 0);
        const s2 = nums2.reduce((a, b) => a + b, 0);
        return (s2 - s1) / nums1.length;
    }
}

Complexity

  • ⏰ Time complexity: O(n), where n is the length of the arrays, as we sum both arrays.
  • 🧺 Space complexity: O(1), as only a few variables are used.

Comments