【数组】 217. 存在重复元素-哈希 | 集合去重 | 排序比较前后元素
题目:

解答:
方法一:哈希,判断value值是否大于1
1 class Solution { 2 public: 3 bool containsDuplicate(vector<int>& nums) { 4 5 unordered_map <int,int>mp; 6 for(int i:nums) 7 { 8 mp[i]++; //i对应的value值++ 9 10 if(mp[i]>1) //i对应的value值大于1,则说明存在重复元素 11 return true; 12 } 13 return false; 14 } 15 };
方法二:利用集合,与原数组比较大小
1 class Solution { 2 public: 3 bool containsDuplicate(vector<int>& nums) { 4 5 unordered_set <int> st (nums.begin(),nums.end()); 6 return nums.size() > st.size();//如果原数组的大小大于集合的大小,则说明存在重复元素 7 } 8 };
方法三:排序,比较前后两个元素是否相等,来判断是否存在重复元素。
1 class Solution { 2 public: 3 bool containsDuplicate(vector<int>& nums) { 4 5 sort(nums.begin(),nums.end()); 6 for(int i=1;i<nums.size();i++) 7 { 8 if(nums[i]==nums[i-1]) 9 return true; 10 } 11 return false; 12 } 13 };

浙公网安备 33010602011771号