349. Intersection of Two Arrays¶ Time: $O(n)$ Space: $O(n)$ C++JavaPython 1 2 3 4 5 6 7 8 9 10 11 12 13class Solution { public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { vector<int> ans; unordered_set<int> set{nums1.begin(), nums1.end()}; for (const int num : nums2) if (set.erase(num)) ans.push_back(num); return ans; } }; 1 2 3 4 5 6 7 8 9 10 11 12class Solution { public int[] intersection(int[] nums1, int[] nums2) { List<Integer> ans = new ArrayList<>(); Set<Integer> set = Arrays.stream(nums1).boxed().collect(Collectors.toSet()); for (final int num : nums2) if (set.remove(num)) ans.add(num); return ans.stream().mapToInt(Integer::intValue).toArray(); } } 1 2 3 4 5 6 7 8 9 10 11class Solution: def intersection(self, nums1: list[int], nums2: list[int]) -> list[int]: ans = [] nums1 = set(nums1) for num in nums2: if num in nums1: ans.append(num) nums1.remove(num) return ans