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 l’une contre l’autre. 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 voit son poids réduit de la différence entre les deux poids.

Écris lastStoneWeight, qui joue des tours jusqu’à ce qu’il ne reste au plus qu’une pierre et renvoie son poids, 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 1 se détruisent mutuellement, donc la réponse est 0.
challenge icon

Pour aller plus loin

Les poids sont au maximum de 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

Test #1

Test #2

Test #3

Argument

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

Résultat attendu

0