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).