leetcode 217. Contains Duplicate

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.

 

 

 

class Solution {
public:
bool containsDuplicate(vector<int>& nums) {    //一开始想用map 后来才想通set c++ map的实现是红黑树,insert跟find不会冲突 unorder_map是散列表 ,前者查找时间复杂度 、                                                                                  //O(logN) 后者接近O(1) map/set不支持重复的元素 multimap/set支持 所以有用nums初始化set比较两者size的思路

if(nums.size() == 0)
return false;
set<int> iset;
for(int i = 0; i < nums.size(); ++i)
if(iset.find(nums[i]) == iset.end())
iset.insert(nums[i]);
else
return true;
return false;
}
};

posted on 2017-09-11 15:16  bloomingFlower  阅读(100)  评论(0编辑  收藏  举报