题解:用map保存数组item和下标的对应关系,注意边界情况和及时更新map映射关系
class Solution {
public:
bool containsNearbyDuplicate(vector<int>& nums, int k) {
//防止空指针
if (nums.size() < 2 || k <= 0) return false;
//初始化
map<int, int> contain;
contain[nums[0]] = 0;
for (int i = 1, len = nums.size() - 1; i < len; i++) {
if (contain.find(nums[i]) != contain.end()) {
if (i - contain[nums[i]] <= k) {
return true;
} else contain[nums[i]] = i;
} else contain[nums[i]] = i;
}
//数组扫描完毕,不包含
return false;
}
};