【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】
题意:
判断一个数组内,判断是否有相同的两个数之间的距离不超过k
思路:
还是用哈希标记的方法,这次标记的是出现的位置
class Solution
{
public:
bool containsNearbyDuplicate(vector<int>& nums, int k)
{
int len = nums.size();
map<int,int> vis;
for(int i = 1; i<=len; i++)
{
if(vis[nums[i-1]])
{
if(i-vis[nums[i-1]]<=k)
return true;
vis[nums[i-1]] = i;
}
else
{
vis[nums[i-1]] = i;
}
}
return false;
}
};