题目:
给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数应该返回 true。如果每个元素都不相同,则返回 false。
解题思路如下:
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.集合查找:如何集合查找发现有重复元素则返回true,否则返回false。
bool containsDuplicate(vector<int>& nums) { set<int> m; for(int i = 0;i < nums.size(); ++i){ if(m.find(nums[i])!=m.end()){ return true; }else{ m.insert(nums[i]); } } return false; }