English
349. Intersection of Two Arrays
Problem Statement
Given two integer arrays nums1
and nums2
, return an array of their intersection. Each element in the result must be unique and you may return the result in any order.
Example 1:
Input: nums1 = [1,2,2,1], nums2 = [2,2]
Output: [2]
Example 2:
Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
Output: [9,4]
Explanation: [4,9] is also accepted.
Constraints:
1 <= nums1.length, nums2.length <= 1000
0 <= nums1[i], nums2[i] <= 1000
Solution:
rs
impl Solution {
pub fn intersection(nums1: Vec<i32>, nums2: Vec<i32>) -> Vec<i32> {
let (mut nums1, mut nums2) = (nums1, nums2);
let mut res = Vec::new();
let (mut i, mut j) = (0, 0);
nums1.sort();
nums2.sort();
while i <= nums1.len() - 1 && j <= nums2.len() - 1 {
if nums1[i] == nums2[j] {
if res.is_empty() || res[res.len() - 1] != nums1[i] {
res.push(nums1[i]);
}
i += 1;
j += 1;
} else if nums1[i] < nums2[j] {
i += 1;
} else {
j += 1;
}
}
res
}
}
...