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:
- Prehodite skozi seznam in kopirajte vse nenulte elemente na začetek.
- 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.