You are given two integer arrays nums1 and nums2 of equal length n.
We define a pair of indices (i, j) as a good pair if nums1[i] == nums2[j].
Return the minimum index sum i + j among all possible good pairs. If no such pairs exist, return -1.
Example 1:
Input: nums1 = [3,2,1], nums2 = [1,3,1]
Output: 1
Explanation:
nums1 and nums2 are 1 and 3.[i, j] = [0, 1], giving an index sum of i + j = 1.[i, j] = [2, 0], giving an index sum of i + j = 2.Example 2:
Input: nums1 = [5,1,2], nums2 = [2,1,3]
Output: 2
Explanation:
nums1 and nums2 are 1 and 2.[i, j] = [1, 1], giving an index sum of i + j = 2.[i, j] = [2, 0], giving an index sum of i + j = 2.Example 3:
Input: nums1 = [6,4], nums2 = [7,8]
Output: -1
Explanation:
nums1 and nums2, the output is -1.
Constraints:
1 <= nums1.length == nums2.length <= 105-105 <= nums1[i], nums2[i] <= 105We initialize a variable ans as infinity, representing the current minimum index sum, and use a hash map d to store the first occurrence index of each element in array nums2.
Then we iterate through array nums1. For each element nums1[i], if it exists in d, we calculate the index sum i + d[nums1[i]] and update ans.
Finally, if ans is still infinity, it means no common element was found, so we return -1; otherwise, we return ans.
The time complexity is O(n), and the space complexity is O(n). Here, n is the length of the array.
Java
C++
Go
TypeScript
Practice Minimum Index Sum of Common Elements with our built-in code editor and test cases.
Practice on FleetCodePractice this problem
Open in Editor