Given an array of integers and an integer k, find out whether 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.
思路:在使用的时候注意更新下同一个数字的下标i的最新位置
class Solution {
public:
bool containsNearbyDuplicate(vector<int>& nums, int k) {
if(nums.empty()||k<=0)
return false;
unordered_map<int,int>res;
bool result=false;
for(int i=0;i<nums.size();i++)
{
if(res.find(nums[i])==res.end())
res[nums[i]]=i;
else if(i-res[nums[i]]<=k)
{
result=true;
break;
}
else
res[nums[i]]=i;
}
return result;
}
};