存在重复
2018-04-06 本文已影响8人
fenerchen
题目
给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数应该返回 true。如果每个元素都不相同,则返回 false。
思路
方法一
使用es6,对数组去重,然后判断新数组和老数组的长度是否相等,若相等则返回false,否则返回true。
方法二
遍历数组,每次弹出数组中第一个元素,判断是否有重数,若有则返回true,否则返回false
AC代码
法一
/**
* @param {number[]} nums
* @return {boolean}
*/
var containsDuplicate = function(nums) {.
return nums.length==[...new Set(nums)].length?false:true;
};
法二
var containsDuplicate = function(nums) {
var len = nums.length;
while (nums) {//即便传入空数组,也执行while,因为Boolean([])==true但是console.log([]==true?1:0)//0
if (len <= 1) {
return false;
} else {
let temp = nums.shift();
if (nums.indexOf(temp) >= 0) {
return true;
}
len--;
}
}
};