作者:
Rushia (みけねこ的鼻屎)
2022-11-09 10:55:41901. Online Stock Span
其實我看不太懂題目在工殺小(也不想知道),總之我們要設計一個類別,每次可以對該
類別offer一個整數,你要返回該整數插入位置往前算共有幾個小於等於他的連續數字(
包括他自己)。
Example:
Input
["StockSpanner", "next", "next", "next", "next", "next", "next", "next"]
[[], [100], [80], [60], [70], [60], [75], [85]]
Output
[null, 1, 1, 1, 2, 1, 4, 6]
Explanation
StockSpanner stockSpanner = new StockSpanner();
stockSpanner.next(100); // return 1
stockSpanner.next(80); // return 1
stockSpanner.next(60); // return 1
stockSpanner.next(70); // return 2 [100 80 60 70]
stockSpanner.next(60); // return 1
stockSpanner.next(75); // return 4 [100 80 60 70 60 75]
stockSpanner.next(85); // return 6
思路:
1.因為要從當前位置往前檢查,要記錄之前的結果,所以直覺的想到用 stack 做。
2.總之就把當前的數字與頂端比較,如果小於頂端就返回1,否則不斷的從頂端取出
元素直到不能再取,過程不斷的+1
Java Code: