1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
#![allow(dead_code)] pub fn intersection(nums1: Vec<i32>, nums2: Vec<i32>) -> Vec<i32> { use std::collections::HashSet; let mut set1 = HashSet::new(); for num in nums1 { set1.insert(num); } let mut set2 = HashSet::new(); for num in nums2 { set2.insert(num); } set1.intersection(&set2).map(|x| *x).collect() } #[cfg(test)] mod tests { use super::*; #[test] fn test1() { let nums1 = vec![1, 2, 2, 1]; let nums2 = vec![2, 2]; assert_eq!(intersection(nums1, nums2), vec![2]); } }