Middle — Senior
Jak zaimplementować algorytm zliczania i przesuwania zer w tablicy w Pythonie?
sobes.tech AI
Odpowiedź od AI
Aby policzyć liczbę zer i przesunąć wszystkie zera na koniec tablicy w Pythonie, można użyć następującego algorytmu:
- Przejdź przez tablicę i skopiuj wszystkie niezerowe elementy na początek.
- Wypełnij pozostałe pozycje zerami.
Przykład implementacji:
from typing import List
def move_zeros(nums: List[int]) -> None:
"""Przesuwa wszystkie zera na koniec tablicy, zachowując kolejność elementów niezerowych."""
insert_pos = 0
for num in nums:
if num != 0:
nums[insert_pos] = num
insert_pos += 1
# Wypełnij pozostałe miejsca zerami
for i in range(insert_pos, len(nums)):
nums[i] = 0
# Przykład użycia
arr = [0, 1, 0, 3, 12]
move_zeros(arr)
print(arr) # Wyjście: [1, 3, 12, 0, 0]
Ten algorytm działa w czasie O(n) i wymaga O(1) dodatkowej pamięci.