设计一个算法收集某些股票的每日报价,并返回该股票当日价格的 跨度 。
当日股票价格的 跨度 被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。
- 例如,如果未来 7 天股票的价格是
[100,80,60,70,60,75,85]
,那么股票跨度将是[1,1,1,2,1,4,6]
。
实现 StockSpanner
类:
StockSpanner()
初始化类对象。int next(int price)
给出今天的股价price
,返回该股票当日价格的 跨度 。
从数组的左边找出等于或小于今天的股票的连续个数。
stack = [] 100 入栈, 80 ,80<100 ? 100 弹出。80 入栈,return stack.length
60 60<80? 80弹出,60入栈,return 1
70 70<60 ? No ⇒ 70,70入栈,return2,
60 60<70 ? yes while stack>0,70出栈,60入栈,return 1.