Duplicate Zeros

EasyArrayTwo Pointers

Solution

export function duplicateZeros(arr: number[]): void {
  const n = arr.length;
  let zeroCount = arr.filter((num) => num === 0).length;
  for (let i = n - 1; 0 <= i; i--) {
    if (i + zeroCount < n) {
      arr[i + zeroCount] = arr[i];
    }
 
    if (arr[i] === 0) {
      zeroCount -= 1;
      if (i + zeroCount < n) {
        arr[i + zeroCount] = 0;
      }
    }
  }
}