1、 思路一
照例两重for循环,不想动脑子………………
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
if(nums.size()==1||nums.empty())
return false;
for(int i =0;i<nums.size();i++){
for(int j=i+1;j<nums.size();j++){
if(nums[i]==nums[j]){
return true;
}
}
}
return false;
}
};
2、思路二
根据set进行优化
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
if(nums.size()==1||nums.empty())
return false;
set<int> myset;
for(int i = 0; i<nums.size(); i++){
if(myset.count(nums[i])==0){
myset.insert(nums[i]);
}
else{
return true;
}
}
return false;
}
};
3、dl的杰作
static const auto __ = []() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
return nullptr;
}();
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
if (nums.empty()) return false;
sort(nums.begin(), nums.end());
auto n = nums.size() - 1;
for (decltype(n) i = 0; i < n; i++) {
if (nums[i] == nums[i + 1]) return true;
}
return false;
}
};