Middle — Senior
Wie implementiert man einen Algorithmus zum Zählen und Verschieben von Nullen in einem Array in Python?
sobes.tech KI
Antwort von AI
Um die Anzahl der Nullen zu zählen und alle Nullen ans Ende des Arrays in Python zu verschieben, kann der folgende Algorithmus verwendet werden:
- Durchlaufen Sie das Array und kopieren Sie alle Nicht-Null-Elemente an den Anfang.
- Füllen Sie die verbleibenden Positionen mit Nullen.
Beispiel für die Implementierung:
from typing import List
def move_zeros(nums: List[int]) -> None:
"""Verschiebt alle Nullen ans Ende des Arrays, wobei die Reihenfolge der Nicht-Null-Elemente erhalten bleibt."""
insert_pos = 0
for num in nums:
if num != 0:
nums[insert_pos] = num
insert_pos += 1
# Mit Nullen auffüllen
for i in range(insert_pos, len(nums)):
nums[i] = 0
# Beispiel für die Verwendung
arr = [0, 1, 0, 3, 12]
move_zeros(arr)
print(arr) # Ausgabe: [1, 3, 12, 0, 0]
Dieser Algorithmus arbeitet in O(n) Zeit und O(1) zusätzlichem Speicher.