Menu
CoddyTech

Last Stone Weight

FacileTaspython iconjava iconcpp iconc iconjs icon+10

Tu as un tas de pierres, et stones[i] est le poids de la pierre i. À chaque tour, prends les deux pierres les plus lourdes et fracasse-les ensemble. Si elles ont le même poids, elles sont toutes les deux détruites. Sinon, la plus légère est détruite et la plus lourde est réduite à la différence entre leurs deux poids.

Écris une fonction nommée lastStoneWeight qui joue des tours jusqu'à ce qu'il reste au plus une pierre, et renvoie le poids de cette pierre, ou 0 s'il ne reste aucune pierre.

Fonction

lastStoneWeight(stones: integer-array) → integer
stonesinteger-array
les poids des pierres dans le tas
Renvoieinteger
le poids de la dernière pierre, ou 0 s’il n’en reste aucune

Contraintes

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

Exemples

Entrée
stones = [3, 9, 4, 6, 2]
Sortie
0
Explication
9 et 6 laissent un 3, puis 4 et 3 laissent un 1, puis 3 et 2 laissent un autre 1. Les deux pierres de poids 1 se détruisent mutuellement, donc il ne reste rien et la réponse est 0.

lock icon+13 tests cachés à la soumission

challenge icon

Pour aller plus loin

Les poids sont au plus égaux à 1000. Peux-tu utiliser cette borne pour terminer en O(n + W) temps, où W est le poids le plus élevé, sans tas ?

Réinitialiser le code
def lastStoneWeight(stones):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

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

Attendu

0