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:
- Recorrer el array y copiar todos los elementos no nulos al principio.
- 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.