| https://leetcode.com/problems/duplicate-zeros | Easy |
|---|
fun duplicateZeros(arr: IntArray) {
var zeros = 0
val n = arr.size
// Считаем количество нулей, которые поместятся после дублирования
for (num in arr) {
if (num == 0) zeros++
}
var i = n - 1
var j = n + zeros - 1
// Идем с конца, расставляем числа и дублируем нули
while (i < j) {
if (j < n) arr[j] = arr[i] // Копируем число на новую позицию
if (arr[i] == 0) {
j--
if (j < n) arr[j] = 0 // Дублируем ноль
}
i--
j--
}
}