Middle — Senior
Jak implementovat algoritmus pro počítání a posun nul v poli v Pythonu?
sobes.tech AI
Odpověď od AI
Pro spočítání počtu nul a přesunutí všech nul na konec pole v Pythonu lze použít následující algoritmus:
- Projděte pole a zkopírujte všechny nenulové prvky na začátek.
- Vyplňte zbývající pozice nulami.
Příklad implementace:
from typing import List
def move_zeros(nums: List[int]) -> None:
"""Posune všechny nuly na konec pole, přičemž zachová pořadí nenulových prvků."""
insert_pos = 0
for num in nums:
if num != 0:
nums[insert_pos] = num
insert_pos += 1
# Vyplní zbývající pozice nulami
for i in range(insert_pos, len(nums)):
nums[i] = 0
# Příklad použití
arr = [0, 1, 0, 3, 12]
move_zeros(arr)
print(arr) # Výstup: [1, 3, 12, 0, 0]
Tento algoritmus pracuje v čase O(n) a vyžaduje O(1) dodatečné paměti.