Method 1
先对整个数组进行排序,然后从前往后开始遍历,判断前一个数 是否跟相邻的数相等
AC Code
class Solution {
public:bool containsDuplicate(vector<int>& nums) {sort(nums.begin(),nums.end());int front = nums[0];for( int i = 1; i < nums.size(); i++){if(nums[i] == front) return true;front = nums[i];}return false;}
};
时间复杂度较高
Method 2
利用哈希表,直接遍历数组,将遍历的数存到哈希表中,每次存储之前判断该数是否在哈希表中已存在
AC Code
class Solution {
public:bool containsDuplicate(vector<int>& nums) {unordered_set<int> hashSet;for(int i : nums){if(hashSet.find(i) != hashSet.end()) return true;hashSet.insert(i);}return false;}
};