283. Move Zeroes
解题思路
- 插入零的起始位置是
zeroInsterIndex = 0 - 遍历数组如果发现不是
0的项,则交换位置[nums[i], nums[zeroInsterIndex]] = [nums[zeroInsterIndex], nums[i]],同时移动需要插入0的位置指针zeroInsterIndex++ - 如果
i === zeroInsterIndex则不需要交换,仅移动需要插入0的指针zeroInsterIndex++
代码
/**
* @param {number[]} nums
* @return {void} Do not return anything, modify nums in-place instead.
*/
var moveZeroes = function (nums) {
let n = nums.length
if (n === 1) return nums
let zeroInsterIndex = 0
for (let i = 0; i < n; i++) {
if(nums[i] !== 0) {
if(i !== zeroInsterIndex) {
[nums[i], nums[zeroInsterIndex]] = [nums[zeroInsterIndex], nums[i]]
}
zeroInsterIndex++
}
}
};