Middle — Senior
Kuidas rakendada algoritmi nullide arvutamiseks ja nihutamiseks massiivis Pythonis?
sobes.tech AI
Vastus AI-lt
Pythonis nullide arvu arvutamiseks ja kõigi nullide liigutamiseks massiivi lõppu saate kasutada järgmist algoritmi:
- Läbige massiiv ja kopeerige kõik mitte-null elemendid algusesse.
- Täitke ülejäänud positsioonid nullidega.
Näide rakendamisest:
from typing import List
def move_zeros(nums: List[int]) -> None:
"""Liigutab kõik nullid massiivi lõppu, säilitades mitte-null elementide järjekorra."""
insert_pos = 0
for num in nums:
if num != 0:
nums[insert_pos] = num
insert_pos += 1
# Täitke ülejäänud positsioonid nullidega
for i in range(insert_pos, len(nums)):
nums[i] = 0
# Kasutamise näide
arr = [0, 1, 0, 3, 12]
move_zeros(arr)
print(arr) # Väljund: [1, 3, 12, 0, 0]
See algoritm töötab O(n) ajal ja nõuab täiendavat mälu O(1).