Menu
CoddyTech

Last Stone Weight

FácilHeappython iconjava iconcpp iconc iconjs icon+10

Você tem uma pilha de pedras, e stones[i] é o peso da pedra i. A cada rodada, pegue as duas pedras mais pesadas e esmague-as uma contra a outra. Se elas tiverem o mesmo peso, ambas serão destruídas. Caso contrário, a mais leve será destruída e a mais pesada ficará com o peso equivalente à diferença entre os dois pesos.

Escreva lastStoneWeight, que joga rodadas até restar no máximo uma pedra e retorna seu peso, ou 0 quando não restar nenhuma pedra.

Função

lastStoneWeight(stones: integer-array) → integer
stonesinteger-array
os pesos das pedras na pilha
Retornainteger
o peso da última pedra, ou 0 se não restar nenhuma

Restrições

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

Exemplos

Entrada
stones = [3, 9, 4, 6, 2]
Saída
0
Explicação
9 e 6 deixam uma 3, depois 4 e 3 deixam uma 1, depois 3 e 2 deixam outra 1. As duas pedras de 1 se destroem, então a resposta é 0.
challenge icon

Para ir além

Os pesos são, no máximo, 1000. Você consegue usar esse limite para concluir em tempo O(n + W), em que W é o maior peso, sem usar um heap?

Redefinir código
def lastStoneWeight(stones):
    # Escreva o código aqui

Teste #1

Teste #2

Teste #3

Argumento

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

Saída Esperada

0