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.
方法一:建立一个集合set,因为集合不包含重复元素,所以当vector转为set后,比较两个容器的大小,若set的大小小于vector那么肯定存在重复元素。
<span style="font-size:14px;">class Solution { public: bool containsDuplicate(vector<int>& nums) { set<int> a; for(int i = 0; i < nums.size(); i++) { a.insert(nums[i]); } if(a.size() < nums.size()) return true; else return false; } };</span>
方法二:哈希法。用一个set记录所有已经出现过的数字,下一个数字来时与set比较,若出现冲突,则包含重复元素,若不冲突,则不包含重复元素。
class Solution { public: bool containsDuplicate(vector<int>& nums) { set<int> a; for(int i = 0; i < nums.size(); i++) { if(a.find(nums[i]) == a.end()) a.insert(nums[i]); else return true; } return false; } };
时间: 2024-11-09 05:00:24