free-programming-books icon indicating copy to clipboard operation
free-programming-books copied to clipboard

Array-解题:移动零(283)

Open meibin08 opened this issue 6 years ago • 1 comments

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

  • 示例:
输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
  • 说明:

必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。

meibin08 avatar Mar 20 '19 01:03 meibin08

解题:

var moveZeroes = function (nums) {
    let number = 0;
    for (var i = nums.length - 1; i >= 0; i--) {

        if (nums[i] == 0) {
            nums.splice(i, 1);
            number++;
        };

    };
    nums.push(...Array.from({
        length: number
    }, (x) => 0));
    return nums
};

image

meibin08 avatar Mar 20 '19 01:03 meibin08