Menu
CoddyTech

Asteroid Collision

MedioPilapython iconjava iconcpp iconc iconjs icon+10

Una fila de asteroides avanza a lo largo de una línea, todos a la misma velocidad. Cada valor de asteroids describe un asteroide: su valor absoluto es su tamaño y su signo indica su dirección: positivo para la derecha y negativo para la izquierda.

Cuando un asteroide que se mueve hacia la derecha se encuentra con uno que se mueve hacia la izquierda, chocan. El más pequeño explota; si tienen el mismo tamaño, ambos explotan. Los asteroides que se mueven en la misma dirección nunca se encuentran. Devuelve los asteroides que quedan después de cada choque, en su orden original. El resultado puede estar vacío.

Función

asteroidCollision(asteroids: integer-array) → integer-array
asteroidsinteger-array
los asteroides de izquierda a derecha, el signo indica la dirección y el valor absoluto, el tamaño
Devuelveinteger-array
los asteroides supervivientes de izquierda a derecha, posiblemente ninguno

Restricciones

  • 1 ≤ asteroids.length ≤ 104
  • -1000 ≤ asteroids[i] ≤ 1000
  • asteroids[i] ≠ 0

Ejemplos

Entrada
asteroids = [4, 9, -6, 2, -3]
Salida
[4, 9]
Explicación
9 se encuentra con -6 y gana. 2 se encuentra con -3 y explota, y después -3 sigue volando hasta 9 y también explota. Nada más se mueve hacia nada, así que quedan 4 y 9.
challenge icon

Para ir más allá

La pila indica qué asteroides sobreviven. ¿Cómo podrías informar también, por cada asteroide que explota, el índice del asteroide que lo destruyó?

Restablecer código
def asteroidCollision(asteroids):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumento

asteroids = [4, 9, -6, 2, -3]

Salida Esperada

[4, 9]