思路是很简单,用了一个哈希表解决了问题,要是隔以前估计真想不出来怎么做。下面上用map的代码
class Solution { public: bool containsDuplicate(vector<int>& nums) { map<int,int> good; int n = nums.size(); for(int i = 0 ; i < n ; i++) { if(good.count(nums[i]) == 0) { good.insert(pair<int,int> (nums[i],1)); } } return !(n == good.size()); } };
还有一种想法就是排个序,完成排序之后,所有重复元素就会排在一起,判断起来就非常方便,贴代码
class Solution { public: bool containsDuplicate(vector<int>& nums) { sort(nums.begin(), nums.end()); int n = nums.size(); for (int i = 0; i < n - 1; i++) { if (nums[i] == nums[i + 1]) { return true; } } return false; } };
原文:https://www.cnblogs.com/zhaohhhh/p/14487324.html