/*
问题:判断一个数组是否含重复元素
方法:用map统计每个元素出现的次数
O(n),O(n)
改进,可以sort后判断,这样就不需要额外空间了,用时间换空间
*/
#include <map>
class Solution
{
public:
bool containsDuplicate(vector<int>& nums)
{
unordered_map<int,int> dict;//用hash表,平均访问时间为O(1)(用unordered_set也可以)
for(int num:nums) // 统计每个元素的出现次数
{
dict[num]++; //首次调用 operator[] 以零初始化计数器
if(dict[num] > 1) return true;
}
return false;
}
};