## 每日一算法之存在重复元素
题目意思是:给定一个整数数组,判断是否存在重复元素,如果存在两个数相同的情况,函数返回true,如果数组每个元素都不相同,则返回false
相信大部分人思路一开始都是先进行排序,我开始也是这么想的,不过等我看到官方给的最优解的时候,感觉排序的时间复杂度的确就不算最好的了.所以我就主要介绍一下使用哈希表,这个解法的思路在于将数组的每个值进行录入哈希表,如果发现数值重复了就可以返回ture了,如果没有发现就一直进行录入直到遍历完数组
代码如下:
var containsDuplicate = function(nums) {
const set = new Set();
for (const x of nums) {
if (set.has(x)) {
return true;
}
set.add(x);
}
return false;
};.
时间复杂度为数组长度O(n)
空间复杂度也为O(n)