LeetCode 存在重复元素之JavaScript

73 阅读1分钟

给定一个整数数组,判断是否存在重复元素。

如果任意一值在数组中出现至少两次,函数返回 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;
    }
};