力扣热题---移动零

66 阅读1分钟

题目描述

image.png

题解

这道题不难,主要是减少数组元素的移动次数,思路如下:

  • 遍历数组,判断每一项是否为零
  • 若为零则计数加一
  • 若不为零则将元素放在当前元素下标减去当前零的总数的位置
  • 将数组最后零的总数项置零

代码如下:

    let count: number = 0;
    let len: number = nums.length;
    nums.map((item: number, index: number) => {
        if(item === 0) {
            count++;
        }
        else {
            let move: number = index - count;
            nums[move] = item;
        }
    })
    for(let i: number = 0; i < count; i++){
        nums[len - i - 1] = 0;
    }
};

提交结果: image.png