Menu
CoddyTech

Stock Span Problem

Du erhältst für jeden Tag den Schlusskurs einer Aktie: prices[i] ist der Kurs am Tag i. Die Spanne des Tages i ist die Anzahl der aufeinanderfolgenden Tage bis einschließlich Tag i, an denen der Kurs kleiner oder gleich prices[i] war.

Gib die Spanne jedes Tages in derselben Reihenfolge wie prices zurück. Jede Spanne beträgt mindestens 1, da ein Tag immer für sich selbst zählt.

Funktion

stockSpan(prices: integer-array) → integer-array
pricesinteger-array
der Preis an jedem Tag, der Reihe nach
Gibt zurückinteger-array
die Zeitspanne jedes Tages, in derselben Reihenfolge

Einschränkungen

  • 1 ≤ prices.length ≤ 104
  • 1 ≤ prices[i] ≤ 105
  • Ein früherer Tag mit demselben Preis zählt zur Spanne; nur ein strikt höherer Preis stoppt sie.

Beispiele

Eingabe
prices = [31, 27, 14, 21, 30, 18, 40]
Ausgabe
[1, 1, 1, 2, 4, 1, 7]
Erklärung
Tag 3 erreicht bei 21 einen Wert über 14 zurück und endet bei 27: Spanne 2. Tag 4 endet bei 30 bei 31: Spanne 4. Tag 6 übertrifft bei 40 alle früheren Preise und umfasst alle 7 Tage.
challenge icon

Weiterführende Frage

Die Preise treffen nun einzeln ein, und du musst jede Spanne melden, sobald der jeweilige Preis eintrifft. Welcher Ansatz funktioniert weiterhin, und was behält er zwischen den Aufrufen bei?

Code zurücksetzen
def stockSpan(prices):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argument

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

Erwartete Ausgabe

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