meibin08 / free-programming-books

📚码农周报 免费的编程书籍,leetcode(力扣)题解、前端算法题,牛客网前端大厂面试题题解、提升工作效率的常用工具等📈🎉
https://susouth.com/
424 stars 60 forks source link

Array-解题:移动零(283) #19

Open meibin08 opened 5 years ago

meibin08 commented 5 years ago

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

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

meibin08 commented 5 years ago

解题:

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