Sobes.tech
Middle — Senior

Πώς υλοποιείται ένας αλγόριθμος για τον υπολογισμό και την μετατόπιση των μηδενικών σε έναν πίνακα σε Python;

sobes.tech AI

Απάντηση από AI

Για τον υπολογισμό του αριθμού των μηδενικών και τη μετακίνηση όλων των μηδενικών στο τέλος του πίνακα σε Python, μπορείτε να χρησιμοποιήσετε τον ακόλουθο αλγόριθμο:

  1. Διατρέξτε τον πίνακα και αντιγράψτε όλα τα μη μηδενικά στοιχεία στην αρχή.
  2. Συμπληρώστε τις υπόλοιπες θέσεις με μηδενικά.

Παράδειγμα υλοποίησης:

from typing import List

def move_zeros(nums: List[int]) -> None:
    """Μετακινεί όλα τα μηδενικά στο τέλος του πίνακα, διατηρώντας τη σειρά των μη μηδενικών στοιχείων."""
    insert_pos = 0
    for num in nums:
        if num != 0:
            nums[insert_pos] = num
            insert_pos += 1
    # Συμπληρώστε με μηδενικά
    for i in range(insert_pos, len(nums)):
        nums[i] = 0

# Παράδειγμα χρήσης
arr = [0, 1, 0, 3, 12]
move_zeros(arr)
print(arr)  # Έξοδος: [1, 3, 12, 0, 0]

Αυτός ο αλγόριθμος λειτουργεί σε χρόνο O(n) και απαιτεί O(1) επιπλέον μνήμη.