448. 找到所有陣列中消失的數字

weixin_34148340發表於2018-06-08

內容

給定一個範圍在 1 ≤ a[i] ≤ n ( n = 陣列大小 ) 的 整型陣列,陣列中的元素一些出現了兩次,另一些只出現一次。

找到所有在 [1, n] 範圍之間沒有出現在陣列中的數字。

您能在不使用額外空間且時間複雜度為O(n)的情況下完成這個任務嗎? 你可以假定返回的陣列不算在額外空間內。

示例:

輸入:
[4,3,2,7,8,2,3,1]

輸出:
[5,6]


思路


程式碼

/**
 * @param {number[]} nums
 * @return {number[]}
 */
var findDisappearedNumbers = function (nums) {
    if (nums.length <= 0) return [];
    var nums2 = new Array(nums.length + 1).fill(-1);
    for (var i = 0; i < nums.length; i++) {
        nums2[nums[i]]++;
    }

    var result = [];
    for (var i = 1; i < nums2.length; i++) {
        if (nums2[i] == -1) {
            result.push(i);
        }
    }

    return result;
};

回到目錄

相關文章