217. 存在重复元素(力扣)
1e5的数据量,要求时间复杂度小于O(n^2)
1.可以排序后判断是否出现相同数字,O(nlogn)
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 true;
}
return false;
}
};
2.可以使用set存入nums中,判断set和nums的大小是否相等,O(n)
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
set<int>s;
for(int i=0;i<nums.size();i++)
s.insert(nums[i]);
if(s.size()==nums.size())return 0;
else return 1;
}
};