
Описание испытания
Учитывая целочисленный массив nums, переместите все 0 в его конец, сохраняя относительный порядок ненулевых элементов.
Обратите внимание, что вы должны сделать это на месте, не создавая копию массива.
Пример 1:
Input: nums = [0,1,0,3,12] Output: [1,3,12,0,0]
Пример 2:
Input: nums = [0] Output: [0]
Решение
Идея в том, что мы проходим по массиву и собираем все нули на нашем пути.

Возьмем наш пример:
первый шаг — встречаем 0.
Хорошо, только помните, что теперь размер нашего снежка равен 1. Идем дальше.

Следующий шаг — встречаем 1. Поменяем местами крайний левый 0 нашего снежного кома на элемент 1.

Следующий шаг — снова встречаем 0!

Наш мяч становится больше, теперь его размер = 2.
Следующий шаг — 3. Снова поменять местами самый левый ноль.

Похоже, наши нули все время катятся
Следующий шаг — 12. Снова поменяйте местами:

Мы достигли финиша! Поздравляем!

function moveZeroes(nums: number[]): void {
let snowBallSize: number = 0;
for (let i = 0; i < nums.length; i++) {
if (nums[i] === 0) {
snowBallSize++;
} else if (snowBallSize > 0) {
const t: number = nums[i];
nums[i] = 0;
nums[i - snowBallSize] = t;
}
}
}