1.题目
217. 存在重复元素
给你一个整数数组 nums
。如果任一值在数组中出现 至少两次 ,返回 true
;如果数组中每个元素互不相同,返回 false
。
示例 1:
输入:nums = [1,2,3,1]
输出:true
解释:
元素 1 在下标 0 和 3 出现。
示例 2:
输入:nums = [1,2,3,4]
输出:false
解释:
所有元素都不同。
示例 3:
输入:nums = [1,1,1,3,3,4,3,2,4,2]
输出:true
2.思路
用哈希表记录,如果是遇到重复就返回true,没有遇到重复就将其插入到哈希表中,循环结束代表没有找到重复数字,返回false
3.代码
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
unordered_map<int, int>hash;
for(int i = 0; i<nums.size();++i){
if(hash.count(nums[i]))return true;
else hash[nums[i]]++;
}
return false;
}
};