楼主:
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: