题目:
给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。
思路:
这道题用python中的字典的话就很简单了。那么在c++中,有没有类似的数据结构呢?是有的,STL大法好,(还好我没有用c来刷题),就是 unordered_map了,
参考资料:https://www.cnblogs.com/slothrbk/p/8823092.html
https://blog.csdn.net/qq_32172673/article/details/85160180
题解:
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
unordered_map<int,int> mymap;
for(int i = 0; i< nums.size();i++){
mymap[nums[i]] = 0; //初始化计数器
}
for(int i = 0; i< nums.size();i++){
mymap[nums[i]]++; //初始化计数器
}
for ( auto it = mymap.begin(); it != mymap.end(); ++it ){
if(it->second > 1)
return true;
}
return false;
}
};