Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct.以上为题目要求,下面贴出代码:
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
sort(nums.begin(),nums.end());
for(int i = 0;i<nums.size()-1;i++)
if(nums[i] == nums[i+1])
return 1;
return 0;
}
};
耗时36ms
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
set<int> s;
for(auto n:nums){
if(!s.insert(n).second)
return 1;
}
return 0;
}
};
这个耗时64ms
此题较为简单。但是不知道为什么下面的耗时反而更高。