[LeetCode]219. Contains Duplicate II
题目描述
思路
哈希表中存储位置,当出现重复元素时,计算位置距离,小于k即返回true
代码
#include <iostream>
#include <vector>
#include <unordered_map>
#include <algorithm>
using namespace std;
class Solution {
public:
bool containsNearbyDuplicate(vector<int>& nums, int k) {
if (nums.size() <= 1)
return false;
unordered_map<int, int> dup_index;
for (int i = 0; i < nums.size(); ++i) {
if (dup_index.count(nums[i])) {
if (i - dup_index[nums[i]] <= k)
return true;
}
dup_index[nums[i]] = i;
}
return false;
}
};
int main() {
vector<int> nums = { 1,1, 2 };
Solution s;
cout << s.containsNearbyDuplicate(nums, 1) << endl;
system("pause");
return 0;
}