문제 

Given an integer array nums, move all 0's to the end of it while maintaining the relative order of the non-zero elements.

Note that you must do this in-place without making a copy of the array.

 

 

입출력

Example 1:

Input: nums = [0,1,0,3,12]

Output: [1,3,12,0,0]

 

Example 2:

Input: nums = [0]

Output: [0]

 

 

제약

Constraints:

  • 1 <= nums.length <= 10^4
  • -2^31 <= nums[i] <= 2^31 - 1

 

 

코드

/**
 * @param {number[]} nums
 * @return {void} Do not return anything, modify nums in-place instead.
 */
var moveZeroes = function(nums) {
    let isZero = false;
    for(let i=0; i<nums.length; i++) {
        if(nums[i] === 0) {
            isZero = true;
            for(let j=i; j<nums.length, isZero; j++) {
                if(nums[j] != 0) {
                    isZero = false;
                    let temp = nums.splice(i, j-i);
                    nums.push(...temp);
                }
            }
        }
    }
};

 

 

+ Recent posts