Sobes.tech
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:

  1. Projděte pole a zkopírujte všechny nenulové prvky na začátek.
  2. 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.