题目:
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
解:
思路:
方法一:使用额外空间存储数组中的元素,如果已存在说明重复,不存在,就添加进去。
代码:
bool containsDuplicate(vector<int>& nums) {
vector<int>temp;
vector<int>::iterator itnum;
for (int i = 0;i < nums.size();i++)
{
itnum = std::find(temp.begin(),temp.end(),nums[i]); //判断是否有某个值
if (itnum == temp.end())
{
temp.push_back(nums[i]);
}
else
return true;
}
return false;
}
**方法二:对数组进行升序排序,进行遍历,如果后一个元素和前一个元素相等,则重复。
代码:**
bool containsDuplicate1(vector<int>& nums)
{
if (nums.size() == 0)
return false;
sort(nums.begin(),nums.end());
for (int i = 0;i < nums.size()-1;i++)
{
if (nums[i] == nums[i + 1])
return true;
}
return false;
}