一、题目
给你一个整数数组 nums。如果任一值在数组中出现至少两次,返回 true;如果数组中每个元素互不相同,返回 false。
二.解法
利用哈希集合unordered_set元素唯一的特性。集合中不能存放重复数据,我们一边遍历数组,一边记录已经访问过的数字:
- 遍历当前数字,先查询哈希集合;
- 如果集合中已经存在该数字 → 找到重复元素,直接返回
true; - 如果不存在,则把当前数字插入哈希集合;
- 全部遍历完成仍未发现重复,返回
false。
#include<unordered_set>
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
int n=nums.size();
unordered_set<int> hash(n);
for(auto i:nums)
{
if(hash.count(i)>0)
return true;
hash.insert(i);
}
return false;
}
};

229

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



