← 返回归档
力扣简单

力扣-283. 移动零

给你一个整数数组 nums,要求把所有 0 移动到数组末尾,同时保持所有非零元素的原有相对顺序。 并且要求:必须原地修改数组,不能复制一个新的数组作为最终结果。

Published
Reading
1 分钟
Version
01

快慢指针:

function moveZeroes(nums: number[]): void {
  let slow = 0

  for (let fast = 0; fast < nums.length; fast++) {
    if (nums[fast] !== 0) {
      nums[slow] = nums[fast]
      slow++
    }
  }

  while (slow < nums.length) {
    nums[slow] = 0
    slow++
  }
}

时间复杂度:O(n),空间复杂度:O(1)。