Move Zeroes

EasyArrayTwo Pointers

Solution

import { range } from '@algorithm/lib';
 
export function moveZeroes(nums: number[]): void {
  let nonZeroIndex = 0;
  for (const num of nums) {
    if (num !== 0) {
      nums[nonZeroIndex] = num;
      nonZeroIndex += 1;
    }
  }
  for (const zeroIndex of range(nonZeroIndex, nums.length)) {
    nums[zeroIndex] = 0;
  }
}