217.存在重复元素
题目链接
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
unordered_set<int>ms;
for(auto i : nums){
if(ms.count(i))return true;
ms.insert(i);
}
return false;
}
};
219.存在重复元素II
题目链接
class Solution {
public:
bool containsNearbyDuplicate(vector<int>& nums, int k) {
ios::sync_with_stdio(0);
unordered_map<int,int>mmp;
for(int i = 0;i<nums.size();i++){
if(mmp.find(nums[i])!=mmp.end()){
if(mmp[nums[i]])return true;
mmp[nums[i]]++;
}
else mmp[nums[i]] = 1;
if(i>=k)mmp[nums[i-k]]--;
}
return false;
}
};

本文介绍两种C++算法实现,用于检测数组中是否存在重复元素。第一种算法使用unordered_set,遍历数组检查元素是否已存在集合中,若存在则返回true。第二种算法利用unordered_map,检测是否有相同元素在指定距离k内重复出现。
683

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



