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