1. 排序
时间复杂度: nlogn -----> sort带来的
空间复杂度: n
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
sort(nums.begin(), nums.end());
for(int i = 1; i < nums.size(); i++)
{
if(nums[i] == nums[i - 1])
return true;
}
return false;
}
};
2. 哈希法
主要思路就是 用哈希法检查该元素以前是否出现过
时间复杂度: n ------> 遍历带来的
空间复杂度: n -----> 开了一个set
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
unordered_set<int> set;
for(int i = 0; i < nums.size(); i++)
{
auto it = set.find(nums[i]);
if(it != set.end())
return true;
set.insert(nums[i]);
}
return false;
}
};