Sobes.tech
Middle — Senior

Ako implementovať algoritmus na počítanie a posun núl v poli v Pythone?

sobes.tech AI

Odpoveď od AI

Za štetje števila ničel in premikanje vseh ničel na konec seznama v Pythonu lahko uporabite naslednji algoritem:

  1. Prehodite skozi seznam in kopirajte vse nenulte elemente na začetek.
  2. Zapolnite preostale pozicije z ničlami.

Primer implementacije:

from typing import List

def move_zeros(nums: List[int]) -> None:
    """Premakne vse ničle na konec seznama, pri čemer ohrani vrstni red nenultih elementov."""
    insert_pos = 0
    for num in nums:
        if num != 0:
            nums[insert_pos] = num
            insert_pos += 1
    # Zapolni z ničlami
    for i in range(insert_pos, len(nums)):
        nums[i] = 0

# Primer uporabe
arr = [0, 1, 0, 3, 12]
move_zeros(arr)
print(arr)  # Izhod: [1, 3, 12, 0, 0]

Ta algoritem deluje v času O(n) in zahteva O(1) dodatne pomnilniške zmogljivosti.