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) допълнителна памет.