problem
solution1
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
class Solution { public: bool containsNearbyDuplicate(vector<int>& nums, int k) { for(int i=0; i<nums.size(); i++)//err { for(int j=i+1; j<nums.size(); j++) { if(nums[i]==nums[j] && j-i<=k) return true; } } return false; } };
solution2:MAP
Hashmap
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
class Solution { public: bool containsNearbyDuplicate(vector<int>& nums, int k) { map<int, int> hashmap; for(int i=0; i<nums.size(); i++) { if(hashmap.find(nums[i])!=hashmap.end() && i-hashmap[nums[i]]<=k) { return true; } hashmap[nums[i]] = i; } return false; } };
solution3:SET
class Solution { public: bool containsNearbyDuplicate(vector<int>& nums, int k) { set<int> myset; for(int i=0; i<nums.size(); i++) { if(i>k) myset.erase(nums[i-k-1]); if(myset.find(nums[i])!=myset.end()) return true; myset.insert(nums[i]);// } return false; } };
参考
1. Leetcode_Contains Duplicate II;
2. CSDN;
完