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 round, prendi le due pietre più pesanti e falle scontrare. Se hanno lo stesso peso, entrambe vengono distrutte. Altrimenti, quella più leggera viene distrutta e quella più pesante si riduce alla differenza tra i due pesi.

Scrivi lastStoneWeight, che esegue i round finché non rimane al massimo una pietra e ne restituisce il peso, 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 una 3, poi 4 e 3 lasciano una 1, poi 3 e 2 lasciano un'altra 1. Le due pietre da 1 si distruggono a vicenda, quindi la risposta è 0.
challenge icon

Per approfondire

I pesi sono al massimo 1000. Puoi usare questo limite per completare in tempo O(n + W), dove W è il peso più grande, senza un heap?

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

Test #1

Test #2

Test #3

Argomento

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

Output atteso

0