设计一种算法,收集某支股票的每日价格报价,并返回该股票当前日期的 价格跨度。
股票在某一天的 价格跨度 是指:从当天开始向前,连续的股票价格小于或等于当天价格的最大天数。
[7,2,1,2],今天的价格为 2,那么今天的价格跨度为 3,因为从今天开始向前,有连续 3 天的股票价格小于或等于 2。[7,34,1,2],今天的价格为 8,那么今天的价格跨度为 3,因为从今天开始向前,有连续 3 天的股票价格小于或等于 8。实现 StockSpanner 类:
StockSpanner() 初始化该类的对象。int next(int price) 给定今天的股票价格 price,返回今天股票价格的 价格跨度。
示例 1:
输入 ["StockSpanner", "next", "next", "next", "next", "next", "next", "next"] [[], [100], [80], [60], [70], [60], [75], [85]] 输出 [null, 1, 1, 1, 2, 1, 4, 6] 解释 StockSpanner stockSpanner = new StockSpanner(); stockSpanner.next(100); // 返回 1 stockSpanner.next(80); // 返回 1 stockSpanner.next(60); // 返回 1 stockSpanner.next(70); // 返回 2 stockSpanner.next(60); // 返回 1 stockSpanner.next(75); // 返回 4,因为包含今天在内的最后 4 天的价格都小于或等于今天的价格 75。 stockSpanner.next(85); // 返回 6
约束条件:
1 <= price <= 105104 次 next。