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.
题意:给定一个数组,同一元素值重复出现,输出true,否则,输出false。
分析:排序,检查当前元素是否和后面一个相等。
代码:
#include <algorithm>
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
sort(nums.begin(),nums.end());
for(int i=0;i<int(nums.size())-1;i++)
{
if(nums[i]==nums[i+1])
{
return true;
}
}
return false;
}
};
别人的:
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
return set<int>(nums.begin(), nums.end()).size() < nums.size();
}
};
set用二叉平衡数写的,插入元素时,遇到set中值已有的元素,就忽略了,所以判断向量大小和set大小,就可以知道有没有重复了。
参考:https://blog.csdn.net/q_l_s/article/details/52416583