Sobes.tech
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:

  1. Durchlaufen Sie das Array und kopieren Sie alle Nicht-Null-Elemente an den Anfang.
  2. 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.