哈希表最裸题
用哈希表建立映射(key, value), key是数组中元素的值,value是在数组中出现的次数
- 遍历数组,并且每次记录当前元素出现次数++,即
hash[x] ++
- 若当前元素出现次数>2了,即说明当前元素是第二次出现,即表示数组中出现重复元素,直接返回
- 遍历完还没返回,说明不存在重复元素
时间复杂度$O(N)$,空间复杂度$O(N)$,
AC代码
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
unordered_map<int, int> mp;
for (auto x : nums) {
mp[x] ++;
if (mp[x] > 1) return true;
}
return false;
}
};