Menu
CoddyTech

Stock Span Problem

מקבלים את מחיר הסגירה של מניה בכל יום: prices[i] הוא המחיר ביום i. הטווח של יום i הוא מספר הימים הרצופים, המסתיימים ביום i וכוללים אותו, שבהם המחיר היה קטן או שווה ל-prices[i].

החזירו את הטווח של כל יום, באותו סדר כמו prices. כל טווח הוא לפחות 1, כי יום תמיד נחשב לעצמו.

פונקציה

stockSpan(prices: integer-array) → integer-array
pricesinteger-array
המחיר בכל יום, לפי הסדר
מחזירהinteger-array
הטווח של כל יום, באותו סדר

אילוצים

  • 1 ≤ prices.length ≤ 104
  • 1 ≤ prices[i] ≤ 105
  • יום מוקדם יותר עם אותו מחיר נחשב כחלק מהטווח; רק מחיר גבוה יותר ממש עוצר אותו.

דוגמאות

קלט
prices = [31, 27, 14, 21, 30, 18, 40]
פלט
[1, 1, 1, 2, 4, 1, 7]
הסבר
ביום 3, ב־21, חוזרים אחורה מעבר ל־14 ועוצרים ב־27: טווח 2. ביום 4, ב־30, עוצרים ב־31: טווח 4. ביום 6, ב־40, עולים על כל המחירים הקודמים ומכסים את כל 7 הימים.
challenge icon

שאלת המשך

כעת המחירים מגיעים בזה אחר זה, ועליך לדווח על כל טווח כשהמחיר מגיע. איזו גישה עדיין עובדת, ומה היא שומרת בין קריאות?

איפוס הקוד
def stockSpan(prices):
    # כתבו כאן את הקוד

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנט

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

הפלט הצפוי

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