Menu
CoddyTech

Stock Span Problem

Her gün için bir hisse senedinin kapanış fiyatı verilir: prices[i], i. gündeki fiyattır. i. günün aralığı, fiyatın prices[i] değerinden küçük veya ona eşit olduğu ve i. günle biten, bu gün de sayılarak art arda gelen günlerin sayısıdır.

Her günün aralığını, prices ile aynı sırada döndürün. Her aralık en az 1'dir, çünkü bir gün her zaman kendisini sayar.

Fonksiyon

stockSpan(prices: integer-array) → integer-array
pricesinteger-array
her günkü fiyat, sırayla
Döndürürinteger-array
her günün zaman aralığı, aynı sırayla

Kısıtlar

  • 1 ≤ prices.length ≤ 104
  • 1 ≤ prices[i] ≤ 105
  • Aynı fiyata sahip daha önceki bir gün aralığa dahil edilir; aralığı yalnızca kesinlikle daha yüksek bir fiyat durdurur.

Örnekler

Girdi
prices = [31, 27, 14, 21, 30, 18, 40]
Çıktı
[1, 1, 1, 2, 4, 1, 7]
Açıklama
21’deki 3. gün, 14’ün üzerinden geriye uzanır ve 27’de durur: aralık 2. 30’daki 4. gün, 31’de durur: aralık 4. 40’taki 6. gün, önceki tüm fiyatların üzerine çıkar ve 7 günün tamamını kapsar.
challenge icon

Ek soru

Fiyatlar artık teker teker geliyor ve her biri geldiğinde ilgili aralığı bildirmen gerekiyor. Hangi yaklaşım hâlâ işe yarıyor ve çağrılar arasında neyi saklıyor?

Kodu sıfırla
def stockSpan(prices):
    # Kodu buraya yazın

Test #1

Test #2

Test #3

Argüman

prices = [31, 27, 14, 21, 30, 18, 40]

Beklenen Çıktı

[1, 1, 1, 2, 4, 1, 7]