Sobes.tech
Middle — Senior

¿Cómo implementar un algoritmo para contar y desplazar ceros en una matriz en Python?

sobes.tech AI

Respuesta de la IA

Para contar la cantidad de ceros y mover todos los ceros al final del array en Python, se puede usar el siguiente algoritmo:

  1. Recorrer el array y copiar todos los elementos no nulos al principio.
  2. Rellenar las posiciones restantes con ceros.

Ejemplo de implementación:

from typing import List

def move_zeros(nums: List[int]) -> None:
    """Desplaza todos los ceros al final del array, manteniendo el orden de los elementos no nulos."""
    insert_pos = 0
    for num in nums:
        if num != 0:
            nums[insert_pos] = num
            insert_pos += 1
    # Rellenar con ceros
    for i in range(insert_pos, len(nums)):
        nums[i] = 0

# Ejemplo de uso
arr = [0, 1, 0, 3, 12]
move_zeros(arr)
print(arr)  # Salida: [1, 3, 12, 0, 0]

Este algoritmo funciona en O(n) en tiempo y en O(1) en memoria adicional.