Sobes.tech
Middle — Senior

Kā īstenot algoritmu, kas skaita un pārvieto nulles masīvā Python?

sobes.tech AI

Atbilde no AI

Lai skaitītu nulles skaitu un pārvietotu visas nulles uz masīva beigām Python, var izmantot šo algoritmu:

  1. Pārliecinieties pa masīvu un nokopējiet visus nenull elementus uz sākumu.
  2. Aizpildiet atlikušās pozīcijas ar nullēm.

Piemērs ieviešanai:

from typing import List

def move_zeros(nums: List[int]) -> None:
    """Pārvieto visus nulles elementus uz masīva beigām, saglabājot nenull elementu kārtību."""
    insert_pos = 0
    for num in nums:
        if num != 0:
            nums[insert_pos] = num
            insert_pos += 1
    # Aizpildiet ar nullēm
    for i in range(insert_pos, len(nums)):
        nums[i] = 0

# Piemērs lietošanai
arr = [0, 1, 0, 3, 12]
move_zeros(arr)
print(arr)  # Izvade: [1, 3, 12, 0, 0]

Šis algoritms darbojas laikā O(n) un prasa papildu atmiņu O(1).