Menu
CoddyTech

Last Stone Weight

Bir taş yığınınız var ve stones[i], i taşının ağırlığıdır. Her turda en ağır iki taşı alıp birbirine çarpın. Ağırlıkları aynıysa ikisi de yok edilir. Değilse hafif olan yok edilir ve ağır olanın ağırlığı iki ağırlık arasındaki fark kadar azalır.

En fazla bir taş kalana kadar turları sürdüren ve kalan taşın ağırlığını ya da hiç taş kalmadığında 0 değerini döndüren lastStoneWeight adlı bir fonksiyon yazın.

Fonksiyon

lastStoneWeight(stones: integer-array) → integer
stonesinteger-array
yığındaki taşların ağırlıkları
Döndürürinteger
son taşın ağırlığı veya hiç taş kalmadıysa 0

Kısıtlar

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

Örnekler

Girdi
stones = [3, 9, 4, 6, 2]
Çıktı
0
Açıklama
9 ve 6 geriye 3 bırakır, ardından 4 ve 3 geriye 1 bırakır, ardından 3 ve 2 geriye bir 1 daha bırakır. Ağırlığı 1 olan iki taş birbirini yok eder, bu yüzden geriye hiçbir şey kalmaz ve cevap 0 olur.

lock iconGönderirken +13 gizli test

challenge icon

Ek soru

Ağırlıklar en fazla 1000. Yığın kullanmadan O(n + W) süresinde tamamlamak için bu sınırdan yararlanabilir misin? Burada W, en büyük ağırlıktır.

Kodu sıfırla
def lastStoneWeight(stones):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Durum 3

Girdi

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

Beklenen

0