欢迎访问LeetCode题解合集
题目描述
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true
。如果数组中每个元素都不相同,则返回 false
。
示例 1:
输入: [1,2,3,1]
输出: true
示例 2:
输入: [1,2,3,4]
输出: false
示例 3:
输入: [1,1,1,3,3,4,3,2,4,2]
输出: true
题解:
哈希表。
从左往右遍历 nums
,对于每个元素,如果哈希表中存在,则返回 true
,否则插入该元素。
时间复杂度:$O(n)$
额外空间复杂度:$O(n)$
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
unordered_set<int> hash;
for ( const int& it : nums ) {
if ( hash.find(it) != hash.end() )
return true;
hash.insert( it );
}
return false;
}
};
/*
时间:32ms,击败:91.20%
内存:19.7MB,击败:27.64%
*/