| No |
题目名 |
难度 |
简短描述 |
数据结构 |
| 283 |
Move Zeroes |
1 |
将数组中的0全部放在最后,类似题目27 |
数组 |
思路
- 遍历数组,声明一个插入下标,将不为0的数字插入到该下标处,然后插入下标自加;
- 由于数组中存在0,所以插入下标 < 数组长度 - 1,此时将后续的位置补0.
code
var moveZeroes = function(nums) {
let len = nums.length;
for (let i = 0; i < len; i++) {
if (nums[i] === 0) {
nums.splice(i, 1);
nums.push(0);
i--;
len--;
}
}
};
var moveZeroes2 = function(nums) {
let len = nums.length;
let insertPos = 0;
for (let i = 0; i < len; i++) {
if (nums[i] !== 0) {
nums[insertPos++] = nums[i];
}
}
for (let i = 0; i < len - insertPos; i++) {
nums[len - 1 - i] = 0;
}
};