思路:
104ms,时间复杂度:O(N),空间复杂度:O(N)
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
set<int> s;
for(int num: nums) {
if(s.find(num) != s.end()) return true;
s.insert(num);
}
return false;
}
};
DISCUSS,追求简洁,使用一行的方法:52ms
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
return nums.size() > set<int>(nums.begin(), nums.end()).size();
}
};
使用二行的方法:40ms
时间复杂度:O(NlogN),空间复杂度:O(1)
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
sort(nums.begin(), nums.end());
return unique(nums.begin(), nums.end()) != nums.end();
}
};