Menu
CoddyTech

Last Stone Weight

FacileHeappython iconjava iconcpp iconc iconjs icon+10

Hai un mucchio di pietre e stones[i] è il peso della pietra i. A ogni turno, prendi le due pietre più pesanti e sbattile l'una contro l'altra. Se hanno lo stesso peso, vengono distrutte entrambe. Altrimenti, quella più leggera viene distrutta e quella più pesante si riduce della differenza tra i due pesi.

Scrivi una funzione chiamata lastStoneWeight che esegua i turni finché non rimane al massimo una pietra e restituisca il peso di quella pietra, oppure 0 se non rimane nessuna pietra.

Funzione

lastStoneWeight(stones: integer-array) → integer
stonesinteger-array
i pesi delle pietre nel mucchio
Restituisceinteger
il peso dell'ultima pietra, oppure 0 se non ne rimane nessuna

Vincoli

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

Esempi

Input
stones = [3, 9, 4, 6, 2]
Output
0
Spiegazione
9 e 6 lasciano un 3, poi 4 e 3 lasciano un 1, poi 3 e 2 lasciano un altro 1. Le due pietre di peso 1 si distruggono a vicenda, quindi non rimane nulla e la risposta è 0.

lock icon+13 test nascosti all’invio

challenge icon

Per approfondire

I pesi sono al massimo 1000. Riesci a sfruttare questo limite per completare il tutto in tempo O(n + W), dove W è il peso massimo, senza usare un heap?

Ripristina il codice
def lastStoneWeight(stones):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Caso 3

Input

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

Atteso

0