LeetCode 存在重複元素之JavaScript

SIXW發表於2020-12-13

給定一個整數陣列,判斷是否存在重複元素。

如果任意一值在陣列中出現至少兩次,函式返回 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;
    }
};

相關文章