分析⼀下题⽬,出现「⾄少两次」的意思就是数组中存在着重复的元素,因此我们可以⽆需统计元素 出现的数⽬。仅需在遍历数组的过程中,检查当前元素「是否在之前已经出现过」即可。 因此我们可以利⽤哈希表,仅需存储数「组内的元素」。在遍历数组的时候,⼀边检查哈希表中是否 已经出现过当前元素,⼀边将元素加⼊到哈希表中。
- class Solution
- {
- public:
- bool containsDuplicate(vector<int>& nums)
- {
- unordered_set<int>hash; //单元素的哈希表
- for(int i=0;i
size();i++) - {
- //若插入前发现哈希表中已经有了,则说明有重复
- if(hash.count(nums[i]))
- {
- return true;
- }
- //数据放入哈希表
- hash.insert(nums[i]);
- }
- return false;
- }
- };
- class Solution
- {
- public boolean containsDuplicate(int[] nums)
- {
- Set
hash = new HashSet<>(); - for (int x : nums)
- {
- if (hash.contains(x)) return true;
- hash.add(x);
- }
- return false;
- }
- }