javascript in place, O(n) solution
/**
 * @param {number[]} nums
 * @return {number[]}
 */
var findDisappearedNumbers = function(nums) {
    for (let i = 0; i < nums.length; i++) {
        const n = nums[i];
        if (n) {
            if (nums[n-1]) {
                nums[i] = nums[n-1];
                nums[n-1] = 0;
                i--;
            }
        }
    }
    let j = 0;
    for (let i = 0; i < nums.length; i++) {
        if (nums[i]) {
            nums[j++] = i + 1;
        }
    }
    nums.length = j;
    return nums;
};
Comments (0)