[LeetCode]217. Contains Duplicate
题目描述
思路
map存,遍历map,遇到出现次数大于2的数,返回true,否则返回false
优化,直接比较vector和map的长度,若vector更大,说明有重复元素,否则没有
代码
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
class Solution {
public:
bool containDuplicate(vector<int>& nums) {
/*
unordered_map<int, int> counts;
for (int p : nums)
++counts[p];
for (auto &p : counts)
if (p.second > 1)
return true;
return false;
*/
unordered_map<int, int> counts;
for (int p : nums)
++counts[p];
return nums.size() > counts.size();
}
};
int main() {
vector<int> nums = {1, 2, 1};
Solution s;
cout << s.containDuplicate(nums) << endl;
system("pause");
}
本文解析了LeetCode上217题Contains Duplicate的解决方案,介绍了使用unordered_map来检测数组中是否存在重复元素的方法,并给出了优化后的代码实现。
1711

被折叠的 条评论
为什么被折叠?



