🔧 AI Nachrichten Major AI platforms go down in unprecedented simultaneous outage(03.09.2026 um 17:34 Uhr)
🔧 AI Nachrichten ChatGPT, Claude, and Grok Down? Users Report Widespread Outages(03.09.2026 um 19:14 Uhr)
🔧 AI Nachrichten OpenAI Launches GPT-6 Astra, Says We May Have Entered the AGI Era(03.09.2026 um 22:08 Uhr)
🔧 AI Nachrichten Claude Comes to CarPlay as Fifth Major AI Chatbot App(05.09.2026 um 05:31 Uhr)
🔧 AI Nachrichten OpenAI’s GPT-6 Astra Is AGI, Says NVIDIA CEO Jensen Huang(07.09.2026 um 06:31 Uhr)
🔧 AI Nachrichten Blame AI companies for Mac mini and Mac Studio shortage(31.08.2026 um 10:32 Uhr)
🔧 AI Nachrichten Major AI platforms go down in unprecedented simultaneous outage(03.09.2026 um 17:34 Uhr)
🔧 AI Nachrichten ChatGPT, Claude, and Grok Down? Users Report Widespread Outages(03.09.2026 um 19:14 Uhr)
🔧 AI Nachrichten OpenAI Launches GPT-6 Astra, Says We May Have Entered the AGI Era(03.09.2026 um 22:08 Uhr)
🔧 AI Nachrichten Claude Comes to CarPlay as Fifth Major AI Chatbot App(05.09.2026 um 05:31 Uhr)
🔧 AI Nachrichten OpenAI’s GPT-6 Astra Is AGI, Says NVIDIA CEO Jensen Huang(07.09.2026 um 06:31 Uhr)
🔧 AI Nachrichten Blame AI companies for Mac mini and Mac Studio shortage(31.08.2026 um 10:32 Uhr)

🔧 Programmierung 🕛 kürzlich 3 Min Lesezeit
0

Online Stock Span

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht




Problem Statement







Design a data structure that collects daily stock prices and returns the stock span.



The stock span of today's price is the number of consecutive days (including today) where:




CODE
price <= today's price












Brute Force Intuition



In an interview, you can explain it like this:




For every new stock price, traverse backwards day by day until you find a price greater than today's price.




This repeatedly scans previous prices.






Complexity




  • Time Complexity: O(N) per query

  • Space Complexity: O(N)






Brute Force Code






CODE
class StockSpanner {

List<Integer> prices;

public StockSpanner() {
prices = new ArrayList<>();
}

public int next(int price) {

prices.add(price);

int span = 1;

for (int i = prices.size() - 2; i >= 0; i--) {

if (prices.get(i) <= price) {
span++;
} else {
break;
}
}

return span;
}
}












Moving Towards the Optimal Approach



Notice something important.



Suppose today's price is:




CODE
100






Previous prices:




CODE
60

70

80






These prices are smaller than 100.



Once we process 100:




CODE
60

70

80






can never become answers again.



So we remove them immediately.









Pattern Recognition



Whenever you see:




  • Previous Greater Element

  • Stock Span

  • Consecutive Greater/Smaller Elements



Think:



Monotonic Stack









Key Observation



Maintain a stack storing:




CODE
(price, span)






Whenever a new price arrives:



Remove every price:




CODE
<= Current Price






and add their spans.









Optimal Approach



For every new price:




CODE
span = 1






While:




CODE
Stack Top <= Current Price









CODE
span += previous span

Pop






Finally:



Push:




CODE
(Current Price, Span)












Optimal Java Solution






CODE
class StockSpanner {

Stack<int[]> st;

public StockSpanner() {

st = new Stack<>();
}

public int next(int price) {

int span = 1;

while (!st.isEmpty() &&
st.peek()[0] <= price) {

span += st.pop()[1];
}

st.push(new int[]{price, span});

return span;
}
}












Dry Run






Prices






CODE
100

80

60

70

60

75

85












Price = 100



Stack:




CODE
(100,1)






Answer:




CODE
1












Price = 80



Stack:




CODE
100

80






Answer:




CODE
1












Price = 60



Answer:




CODE
1












Price = 70



Remove:




CODE
60






Span:




CODE
1 + 1 = 2






Push:




CODE
(70,2)






Answer:




CODE
2












Price = 75



Remove:




CODE
70

60






Span:




CODE
4












Price = 85



Remove:




CODE
75

80






Span:




CODE
6






Final Output:




CODE
[1,1,1,2,1,4,6]












Why Monotonic Stack Works?



Every stock price is:




CODE
Pushed Once

Popped Once






Hence:




CODE
Overall Complexity

=

O(N)






instead of O(N²).









Complexity Analysis




















Metric Complexity
Time Complexity O(1) Amortized
Space Complexity O(N)








Interview One-Liner




Maintain a monotonic decreasing stack storing (price, span) so smaller prices are merged into the current span.










Pattern Learned






CODE
Previous Greater Element

+

Consecutive Count



Monotonic Stack









Similar Problems




  • Online Stock Span

  • Next Greater Element

  • Daily Temperatures

  • Largest Rectangle in Histogram

  • Sum of Subarray Minimums









Memory Trick



Think:




CODE
Current Price



Remove Smaller Prices



Add Their Spans



Push (Price, Span)









Mental Model






CODE
Need Previous Greater



Monotonic Decreasing Stack



Store Price + Span






Whenever you hear:




"Stock Span"




your brain should immediately think:



Previous Greater Element + Monotonic Stack

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
3 Quellen
GPT-6 Astra Release Today? OpenAI’s Next Major AI Model Is Almost Here
1 Quelle
Apple accuses OpenAI of destroying evidence as trade-secrets fight intensifies
1 Quelle
Major AI platforms go down in unprecedented simultaneous outage
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Online Stock Span

Thematisch verwandte Begriffe: Online, Stock, Span · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...