码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 217. Contains Duplicate

时间:2016-03-20 17:45:28      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:

最简单粗暴的思路,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

标签:

原文地址:http://www.cnblogs.com/co0oder/p/5298946.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!