Middle — Senior
Hoe implementeer je een algoritme voor het tellen en verschuiven van nullen in een array in Python?
sobes.tech AI
Antwoord van AI
Om het aantal nullen te tellen en alle nullen naar het einde van de array te verplaatsen in Python, kun je het volgende algoritme gebruiken:
- Loop door de array en kopieer alle niet-nul elementen naar het begin.
- Vul de resterende posities met nullen.
Voorbeeld van implementatie:
from typing import List
def move_zeros(nums: List[int]) -> None:
"""Verplaatst alle nullen naar het einde van de array, terwijl de volgorde van niet-nul elementen behouden blijft."""
insert_pos = 0
for num in nums:
if num != 0:
nums[insert_pos] = num
insert_pos += 1
# Vul de resterende posities met nullen
for i in range(insert_pos, len(nums)):
nums[i] = 0
# Voorbeeld van gebruik
arr = [0, 1, 0, 3, 12]
move_zeros(arr)
print(arr) # Uitvoer: [1, 3, 12, 0, 0]
Dit algoritme werkt in O(n) tijd en vereist O(1) extra geheugen.