题目描述
题解
这道题不难,主要是减少数组元素的移动次数,思路如下:
- 遍历数组,判断每一项是否为零
- 若为零则计数加一
- 若不为零则将元素放在当前元素下标减去当前零的总数的位置
- 将数组最后零的总数项置零
代码如下:
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;
}
};
提交结果: