Contains Duplicate II
Given an array of integers and an integer k, find out whether there there are two distinct indices i and j in the array such that nums[i] = nums[j]and the difference between i and j is at most k.
1 class Solution { 2 public: 3 bool containsNearbyDuplicate(vector<int>& nums, int k) { 4 if (nums.empty()) { 5 return false; 6 } 7 unordered_map<int, int> map; 8 for (int i = 0; i < nums.size(); i++) { 9 if (map.find(nums[i]) != map.end() && i - map[nums[i]] <= k) { 10 return true; 11 } 12 map[nums[i]] = i; 13 } 14 return false; 15 } 16 };