方法一:
排序:
先排序,后比较相邻元素;
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
sort(nums.begin(),nums.end());
if(nums.size()<=1){
return false;
}
for(int i=0;i<nums.size()-1;i++){
if(nums[i]==nums[i+1]){
return true;
}
}
return false;
}
};
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
sort(nums.begin(),nums.end());
if(nums.size()<=1){
return false;
}
for(int i=1;i<nums.size();i++){
if(nums[i]==nums[i-1]){
return true;
}
}
return false;
}
};
方法二:
map:
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
unordered_map<int,int> m;
for(auto i:nums){
m[i]++;
}
for(auto j:m){
if(j.second>1){
return true;
}
}
return false;
}
};
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
unordered_map<int,int> m;
for(auto i:nums){
m[i]++;
if(m[i]>1){
return true;
}
}
return false;
}
};
方法三:
set:
public:
bool containsDuplicate(vector<int>& nums) {
unordered_set<int> s(nums.begin(),nums.end());
if(nums.size()>s.size()){
return true;
}
return false;
}
};