Middle — Senior
Как да реализирам алгоритъм за броене и преместване на нули в масив в Python?
sobes.tech AI
Отговор от AI
За броене на броя на нулите и преместване на всички нули в края на масива в Python, можете да използвате следния алгоритъм:
- Обходете масива и копирайте всички ненулеви елементи в началото.
- Попълнете останалите позиции с нули.
Пример за реализация:
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) допълнителна памет.