难度简单353
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回
true
。如果数组中每个元素都不相同,则返回false
。
示例 1:
输入: [1,2,3,1] 输出: true示例 2:
输入: [1,2,3,4] 输出: false示例 3:
输入: [1,1,1,3,3,4,3,2,4,2] 输出: true
1. 排序法
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. 哈希表
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
unordered_set<int> set;
for(int i: nums){
if(set.find(i) != set.end()){
return true;
}
set.insert(i);
}
return false;
}
};
但是这里我有个疑问,这里的if判断语句是什么意思呢?
set.end() != set.find(i)
未完待续