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) ниёз дорад.