Sobes.tech
Middle — Senior

Kuidas rakendada algoritmi nullide arvutamiseks ja nihutamiseks massiivis Pythonis?

sobes.tech AI

Vastus AI-lt

Pythonis nullide arvu arvutamiseks ja kõigi nullide liigutamiseks massiivi lõppu saate kasutada järgmist algoritmi:

  1. Läbige massiiv ja kopeerige kõik mitte-null elemendid algusesse.
  2. Täitke ülejäänud positsioonid nullidega.

Näide rakendamisest:

from typing import List

def move_zeros(nums: List[int]) -> None:
    """Liigutab kõik nullid massiivi lõppu, säilitades mitte-null elementide järjekorra."""
    insert_pos = 0
    for num in nums:
        if num != 0:
            nums[insert_pos] = num
            insert_pos += 1
    # Täitke ülejäänud positsioonid nullidega
    for i in range(insert_pos, len(nums)):
        nums[i] = 0

# Kasutamise näide
arr = [0, 1, 0, 3, 12]
move_zeros(arr)
print(arr)  # Väljund: [1, 3, 12, 0, 0]

See algoritm töötab O(n) ajal ja nõuab täiendavat mälu O(1).