目录
力扣217. 存在重复元素
解析代码
力扣217. 存在重复元素
217. 存在重复元素
难度 简单
给你一个整数数组 nums
。如果任一值在数组中出现 至少两次 ,返回 true
;如果数组中每个元素互不相同,返回 false
。
示例 1:
输入:nums = [1,2,3,1] 输出:true
示例 2:
输入:nums = [1,2,3,4] 输出:false
示例 3:
输入:nums = [1,1,1,3,3,4,3,2,4,2] 输出:true
提示:
1 <= nums.length <= 10^5
-10^9 <= nums[i] <= 10^9
class Solution {
public:bool containsDuplicate(vector<int>& nums) {}
};
解析代码
至少两次的意思就是数组中存在着重复的元素,因此可以无需统计元素出现的数目。仅需在遍历数组的过程中,检查当前元素是否在之前已经出现过即可。
因此可以利用哈希表,仅需存储数组内的元素。在遍历数组的时候,一边检查哈希表中是否 已经出现过当前元素,一边将元素加入到哈希表中。
class Solution {
public:bool containsDuplicate(vector<int>& nums) {unordered_set<int> hash;for(auto& e : nums){if(hash.count(e)) // 如果哈希表中存在此元素return true;hash.insert(e);}return false;}
};