LeetCode 217. Contains Duplicate
Posted co0oder
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 217. Contains Duplicate相关的知识,希望对你有一定的参考价值。
最简单粗暴的思路,sort后比较当前数和后一个数是否相同。但是耗时,O(nlogn)
1 class Solution { 2 public: 3 bool containsDuplicate(vector<int>& nums) { 4 sort(nums.begin(), nums.end()); 5 int i = 0, size = nums.size(); 6 while(i < size - 1){ 7 if(nums[i] == nums[i + 1]) 8 return true; 9 ++i; 10 } 11 return false; 12 } 13 };
用set优化,放入一个数,如果已经在set中,那么return true
1 class Solution { 2 public: 3 bool containsDuplicate(vector<int>& nums) { 4 set<int> set_num; 5 for(int i = 0; i < nums.size(); ++i){ 6 if(!set_num.insert(nums[i]).second) return true; 7 } 8 return false; 9 } 10 };
然而set更慢了……
把set改为unordered_set会快一些,但是仍没有sort快。
以上是关于LeetCode 217. Contains Duplicate的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 217 Contains Duplicate
217. Contains Duplicate (leetcode)
leetcode-217-Contains Duplicate
[leetcode]217.Contains Duplicate