283. Move Zeroes (Easy) (https://leetcode.com/problems/move-zeroes/)
Дан целочисленный массив nums, переместите все 0 в его конец, сохраняя относительный порядок ненулевых элементов. Обратите внимание, что вы должны сделать это на месте, не создавая копию массива. Ограничения: 1 <= nums.length <= 10^4 -2^31 <= nums[i] <= 2^31 - 1 Дополнительное задание: Сможете ли вы минимизировать общее количество операций?
function moveZeroes(nums: number[]): void {
let left = 0
let right = left
while (right !== nums.length) {
if (nums[right] !== 0) {
if (right !== left) {
const temp = nums[left]
nums[left] = nums[right]
nums[right] = temp
}
right++
left++
} else {
right++
}
}
}
// Local check:
console.log(moveZeroes([0, 1, 0, 3, 12]))
console.log(moveZeroes([0]))
console.log(moveZeroes([0, 1, 2, 3, 0]))Example 1:
Input: nums = [0,1,0,3,12]
Output: [1,3,12,0,0]
Example 2:
Input: nums = [0]
Output: [0]268-missing-number 448-find-all-numbers-disappeared-in-an-array leetcode