解题思路:
(1)将每个数使用map中的key存储,value存储的是该数在数组中的位置
(2)依次比较相邻的位置,判断即可
class Solution {
public:
bool containsNearbyDuplicate(vector<int>& nums, int k) {
unordered_map<int,vector<int>> mp;
int length = nums.size();
for (int i=0;i<length;i++) {
if (mp[nums[i]].size()==0) mp[nums[i]].push_back(i);
else if (i-*mp[nums[i]].rbegin()<=k) return true;
else mp[nums[i]].push_back(i);
}
return false;
}
};