Skip to main content
Back to problems
#1885
Medium Algorithms

Count pairs in two arrays

Array Two Pointers Binary Search Sorting
60.3% acceptance
Mar 31, 2026
245
23

No description available.

Solution

Rust
Time O(n log n)
Space O(1)
LeetCode
solution.rs
impl Solution {
  pub fn count_pairs(nums1: Vec<i32>, nums2: Vec<i32>) -> i64 {
    // nums1[i] + nums1[j] > nums2[i] + nums2[j]
    // (nums1[i] - nums2[i]) + (nums1[j] - nums2[j]) > 0
    let mut diff: Vec<i32> = nums1.iter().zip(nums2.iter()).map(|(a, b)| a - b).collect();
    diff.sort();
    let n = diff.len();
    let mut count: i64 = 0;
    let mut lo = 0;
    let mut hi = n - 1;
    while lo < hi {
      if diff[lo] + diff[hi] > 0 {
        count += (hi - lo) as i64;
        hi -= 1;
      } else {
        lo += 1;
      }
    }
    count
  }
}