法1:先排序后查重
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集合,哈希表 对于数组中每个元素,我们将它插入到哈希表中。如果插入一个元素时发现该元素已经存在于哈希表中,则说明存在重复的元素。
class Solution {
public:
bool containsDuplicate(vector<int>& nums)
{
unordered_set<int> s;
for (int x : nums) {
//如果是重复元素,插入失败,返回尾迭代器
if (s.find(x) != s.end()) {
return true;
}
s.insert(x);
}
return false;
}
};