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) талап кылат.