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