#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)
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
}
}