Array Hash Table Sliding Window 219. Contains Duplicate II¶ Time: $O(n)$ Space: $O(n)$ C++JavaPython 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15class Solution { public: bool containsNearbyDuplicate(vector<int>& nums, int k) { unordered_set<int> seen; for (int i = 0; i < nums.size(); ++i) { if (!seen.insert(nums[i]).second) return true; if (i >= k) seen.erase(nums[i - k]); } return false; } }; 1 2 3 4 5 6 7 8 9 10 11 12 13 14class Solution { public boolean containsNearbyDuplicate(int[] nums, int k) { Set<Integer> seen = new HashSet<>(); for (int i = 0; i < nums.length; ++i) { if (!seen.add(nums[i])) return true; if (i >= k) seen.remove(nums[i - k]); } return false; } } 1 2 3 4 5 6 7 8 9 10 11 12class Solution: def containsNearbyDuplicate(self, nums: list[int], k: int) -> bool: seen = set() for i, num in enumerate(nums): if i > k: seen.remove(nums[i - k - 1]) if num in seen: return True seen.add(num) return False