给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。
示例 1:
输入: [1,2,3,1]
输出: true
思路: 一种是利用排序, 第二种使用hashset。这里只展示第二种用法。
class Solution { public: bool containsDuplicate(vector<int>& nums) { unordered_set<int> haset; for(int i = 0; i < nums.size(); i++){ if(haset.count(nums[i]) > 0) return true; else { haset.insert(nums[i]); } } return false; } }; /*class Solution { public: bool containsDuplicate(vector<int>& nums) { unordered_map<int,int> map;//无序map更快 for(int i =0; i<nums.size();i++) if(map.count(nums[i])!=NULL) return true; else map[nums[i]]+=1; return false; } }; */