[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;
}
本文介绍了解决LeetCode上219. Contains Duplicate II问题的方法,通过使用哈希表存储元素及其索引来判断是否存在两个相同元素且索引之差不超过给定值k的情况。代码实现简洁高效。
670

被折叠的 条评论
为什么被折叠?



