Sobes.tech
Middle — Senior

Como implementar um algoritmo de contagem e deslocamento de zeros numa matriz em Python?

sobes.tech IA

Resposta da IA

Para contar o número de zeros e mover todos os zeros para o final do array em Python, pode usar o seguinte algoritmo:

  1. Percorra o array e copie todos os elementos não nulos para o início.
  2. Preencha as posições restantes com zeros.

Exemplo de implementação:

from typing import List

def move_zeros(nums: List[int]) -> None:
    """Desloca todos os zeros para o final do array, mantendo a ordem dos elementos não nulos."""
    insert_pos = 0
    for num in nums:
        if num != 0:
            nums[insert_pos] = num
            insert_pos += 1
    # Preenche com zeros
    for i in range(insert_pos, len(nums)):
        nums[i] = 0

# Exemplo de uso
arr = [0, 1, 0, 3, 12]
move_zeros(arr)
print(arr)  # Saída: [1, 3, 12, 0, 0]

Este algoritmo funciona em O(n) no tempo e em O(1) na memória adicional.