题目
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.
分析
利用STL中set 不重复的性质,把nums中所有元素拷贝到set 中,如果大小一样就说明无重复元素,否则说明有重复元素
实现
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
if(nums.size() == 0)
return false;
set<int> nonDup;
for (int i = 0; i < nums.size(); i++)
{
nonDup.insert(nums[i]);
}
return nums.size() != nonDup.size();
}
};
提交了自己的答案以后,发现有更简便的方式,利用vector 来构造set
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
set<int> nonDup(nums.begin(), nums.end());
return nums.size() != nonDup.size();
}
};