给定一个整数数组nums[],查找是否存在两个下标i和j,满足
这个问题比Contains Duplicate III
要简单一些,思路方面可以参考上一篇文章Contains Duplicate III。采用“滑动窗口”+哈希的方法。不同的是,在窗口范围内只要找到满足hash[
class Solution {
public:
bool containsNearbyDuplicate(vector<int>& nums, int k) {
if( k <1)
return false;
int i;
int key;
unordered_map<int,int> dict;
for(i =0; i < nums.size(); i++)
{
int n = nums[i];
//map<double,int>::iterator it;
if( dict.find(n) != dict.end() && dict[n] == 1)
{
return true;
}
//dict[key] = nums[i];
dict.insert(pair<int,int>(nums[i],1));
if(i >= k)
{
dict.erase(nums[i-k]);
}
}
return false;
}
};
Leetcode 219 Contains Duplicate II
原文地址:http://blog.csdn.net/jeanphorn/article/details/46627479