Menu
CoddyTech

Stock Span Problem

Kamu mendapatkan harga penutupan saham setiap hari: prices[i] adalah harga pada hari i. Rentang hari i adalah jumlah hari berturut-turut, yang berakhir pada hari i dan termasuk hari itu, saat harganya kurang dari atau sama dengan prices[i].

Kembalikan rentang setiap hari dalam urutan yang sama seperti prices. Setiap rentang minimal 1, karena satu hari selalu menghitung dirinya sendiri.

Fungsi

stockSpan(prices: integer-array) → integer-array
pricesinteger-array
harga pada setiap hari, secara berurutan
Mengembalikaninteger-array
rentang setiap hari, dalam urutan yang sama

Batasan

  • 1 ≤ prices.length ≤ 104
  • 1 ≤ prices[i] ≤ 105
  • Hari sebelumnya dengan harga yang sama dihitung dalam rentang tersebut; hanya harga yang lebih tinggi yang menghentikannya.

Contoh

Input
prices = [31, 27, 14, 21, 30, 18, 40]
Output
[1, 1, 1, 2, 4, 1, 7]
Penjelasan
Hari ke-3 pada 21 melihat kembali ke 14 dan berhenti di 27: rentang 2. Hari ke-4 pada 30 berhenti di 31: rentang 4. Hari ke-6 pada 40 melampaui semua harga sebelumnya dan mencakup seluruh 7 hari.
challenge icon

Pertanyaan lanjutan

Harga kini datang satu per satu, dan kamu harus melaporkan setiap rentang saat harganya tiba. Pendekatan mana yang masih berfungsi, dan apa yang disimpannya di antara pemanggilan?

Reset kode
def stockSpan(prices):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

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

Output yang diharapkan

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