SOURCE

// 给定一个整数数组,请将其中的0移动到最后,并保持其他元素顺序不便。

// const list = [1,0,0,2,3]
// moveZeros(list) 
// console.log(list) // [1,2,3,0,0]
// 请说明你的代码的时间空间复杂度。


/**
 * @param {Array<any>} list
 * @returns {void}
 */
// function moveZeros(list) {
//   // your code here

//   const notZeroList = [];
//   const zeroList = [];

//   for(const item of list) {
//       if(item === 0) {
//           zeroList.push(item);
//       }else{
//           notZeroList.push(item);
//       }
//   };


//   return [...notZeroList,...zeroList];
// };

function moveZeros(nums) {
    let insetPos = 0;

    for (let i = 0; i < nums.length; i++) {
        if (nums[i] !== 0) {
            nums[insetPos++] = nums[i];
        };
    };

    while (insetPos < nums.length) {
        nums[insetPos++] = 0;
    }

    return nums;
}

const list = [1, 0, 0, 2, 3]
moveZeros(list)
console.log(list, moveZeros(list)) // [1,2,3,0,0]

console 命令行工具 X clear

                    
>
console