给定一个整数数组,判断是否存在重复元素。
如果任意一值在数组中出现至少两次,函数返回 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
想法:一开始想的是最原始的做法,桶排序相似,将每个元素放在桶里面,最后直接去查看是否有两个元素挤在了一个桶里面,有 则输出true【注意题目要求呀!!至少两次出现就输出true,别掉进坑里面了】
转眼一想,似乎不用那么麻烦,我们反手就是一个排序,然后再进行查找,是否存在两个相同的元素,这里我们用了一个标记flag,只要找到了两个相同的元素存在,就不用再去管其他的了,这时候直接输出true并且跳出循环即可
*> AC了可是代码还不够优秀,菜鸟持续输出……*感谢您的指点
/**
* @param {number[]} nums
* @return {boolean}
*/
var containsDuplicate = function(nums) {
var ret=nums.sort();//排序
var flag=1;//标记
for(let i=0;i<nums.length;i++)//查找
{
for(let j=i+1;j<nums.length;j++)
{
if(nums[i]===nums[j]){
flag=0;
return true;
break;
}
else{
continue;
}
}
}
if(flag===1){
return false;
}
};