您的位置:首页 > 大数据 > 人工智能

LeetCode 217. Contains Duplicate

2016-03-20 17:00 465 查看
最简单粗暴的思路,sort后比较当前数和后一个数是否相同。但是耗时,O(nlogn)

class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
sort(nums.begin(), nums.end());
int i = 0, size = nums.size();
while(i < size - 1){
if(nums[i] == nums[i + 1])
return true;
++i;
}
return false;
}
};


用set优化,放入一个数,如果已经在set中,那么return true

class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
set<int> set_num;
for(int i = 0; i < nums.size(); ++i){
if(!set_num.insert(nums[i]).second) return true;
}
return false;
}
};


然而set更慢了……

把set改为unordered_set会快一些,但是仍没有sort快。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: