Menu
CoddyTech

Burst Balloons

Bir balon sırası nums olarak verilmiştir; burada nums[i], i numaralı balonun üzerindeki sayıdır. Tüm balonları, seçtiğin herhangi bir sırayla, teker teker patlatırsın. Bir balonu patlatmak left × nums[i] × right jeton kazandırır; burada left ve right, balonun o anki komşularının, yani sırada hâlâ bulunan her iki taraftaki en yakın balonların üzerindeki sayılardır. Sıranın iki ucundan birinin ötesinde komşu yoksa, bu komşunun değeri 1 kabul edilir. Bir balon patlatıldıktan sonra iki komşusu yan yana gelir. Toplayabileceğin en yüksek jeton sayısını döndür.

Fonksiyon

maxCoins(nums: integer-array) → integer
numsinteger-array
balonların üzerindeki sayılar, soldan sağa
Döndürürinteger
her balonu patlatarak toplayabileceğin en fazla jeton

Kısıtlar

  • 1 ≤ nums.length ≤ 300
  • 0 ≤ nums[i] ≤ 100
  • Cevap 3 × 108 değerinden küçüktür, bu nedenle 32 bitlik işaretli bir tamsayıya sığar.

Örnekler

Girdi
nums = [2, 4, 3]
Çıktı
33
Açıklama
İlk 4 balonu patlatarak 2 × 4 × 3 = 24 jeton kazanırsın. 2 ve 3 artık komşu olduğundan, 2'yi patlatmak 1 × 2 × 3 = 6 kazandırır; artık tek başına olan 3 ise 1 × 3 × 1 = 3 kazandırır. Böylece toplam 33 olur ve başka hiçbir sıralama daha iyi sonuç vermez: küçük 2'yi önce patlatmak, kazanabileceğin miktarı zaten 24 ile sınırlar.

lock iconGönderirken +15 gizli test

challenge icon

Ek soru

En çok jeton kazandıran bir patlama sırası da döndürebilir misin?

Kodu sıfırla
def maxCoins(nums):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Durum 3

Girdi

nums = [2, 4, 3]

Beklenen

33