Skip to main content
Back to problems
#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)
LeetCode
solution.rs
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 }
  }
}