Menu
CoddyTech

Last Stone Weight

FácilMontículopython iconjava iconcpp iconc iconjs icon+10

Tienes un montón de piedras, y stones[i] es el peso de la piedra i. En cada ronda, toma las dos piedras más pesadas y haz que choquen entre sí. Si pesan lo mismo, ambas se destruyen. Si no, la más ligera se destruye y la más pesada se reduce a la diferencia entre sus pesos.

Escribe lastStoneWeight, que juega rondas hasta que quede como máximo una piedra y devuelve su peso, o 0 cuando no quede ninguna piedra.

Función

lastStoneWeight(stones: integer-array) → integer
stonesinteger-array
los pesos de las piedras del montón
Devuelveinteger
el peso de la última piedra, o 0 si no queda ninguna

Restricciones

  • 1 ≤ stones.length ≤ 104
  • 1 ≤ stones[i] ≤ 1000

Ejemplos

Entrada
stones = [3, 9, 4, 6, 2]
Salida
0
Explicación
9 y 6 dejan un 3, después 4 y 3 dejan un 1, después 3 y 2 dejan otro 1. Las dos piedras de 1 se destruyen entre sí, así que la respuesta es 0.
challenge icon

Para ir más allá

Los pesos son como máximo 1000. ¿Puedes usar ese límite para terminar en tiempo O(n + W), donde W es el peso más grande, sin un montículo?

Restablecer código
def lastStoneWeight(stones):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumento

stones = [3, 9, 4, 6, 2]

Salida Esperada

0