#3682
Medium Algorithms Minimum index sum of common elements
Array Hash Table
77.5% acceptance
Mar 31, 2026
6
1
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.
Solution
Rust
Time O(n)
Space O(n)
impl Solution {
pub fn minimum_sum(nums1: Vec<i32>, nums2: Vec<i32>) -> i32 {
use std::collections::HashMap;
// Store first occurrence index of each value in nums1
let mut map: HashMap<i32, usize> = HashMap::new();
for (i, &v) in nums1.iter().enumerate() {
map.entry(v).or_insert(i);
}
let mut min_sum = i32::MAX;
for (j, &v) in nums2.iter().enumerate() {
if let Some(&i) = map.get(&v) {
min_sum = min_sum.min((i + j) as i32);
}
}
if min_sum == i32::MAX { -1 } else { min_sum }
}
}