Middle — Senior
Kaip įgyvendinti algoritmą, skaičiuojantį ir perkeliantį nulinius elementus masyve Python?
sobes.tech AI
Atsakymas iš AI
Norint suskaičiuoti nulinių elementų skaičių ir perkelti visus nulinius elementus į masyvo pabaigą Python'e, galima naudoti šį algoritmą:
- Pereiti per masyvą ir nukopijuoti visus nulių neturinčius elementus į pradžią.
- Užpildyti likusias pozicijas nuliais.
Pavyzdinis įgyvendinimas:
from typing import List
def move_zeros(nums: List[int]) -> None:
"""Perkelia visus nulius į masyvo pabaigą, išlaikant nenulių elementų tvarką."""
insert_pos = 0
for num in nums:
if num != 0:
nums[insert_pos] = num
insert_pos += 1
# Užpildyti likusias pozicijas nuliais
for i in range(insert_pos, len(nums)):
nums[i] = 0
# Pavyzdinis naudojimas
arr = [0, 1, 0, 3, 12]
move_zeros(arr)
print(arr) # Išvestis: [1, 3, 12, 0, 0]
Šis algoritmas veikia laike O(n) ir reikalauja papildomos atminties O(1).