编写一个 StockSpanner 类,它收集某些股票的每日报价,并返回该股票当日价格的跨度。 今天股票价格的跨度被定义为股票价格 例如,如果未来7天股票的价格是 [100, 80, 60, 70, 60, 75, 85],那么股票跨度将是 [1, 1, 1, 2, 1, 4, 6]。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/online-stock-span
1. 题目
小于或等于
今天价格的最大连续日数(从今天开始往回数,包括今天)。示例: 输入:["StockSpanner","next","next","next","next","next","next","next"], [[],[100],[80],[60],[70],[60],[75],[85]] 输出:[null,1,1,1,2,1,4,6] 解释: 首先,初始化 S = StockSpanner(),然后: S.next(100) 被调用并返回 1, S.next(80) 被调用并返回 1, S.next(60) 被调用并返回 1, S.next(70) 被调用并返回 2, S.next(60) 被调用并返回 1, S.next(75) 被调用并返回 4, S.next(85) 被调用并返回 6。 注意 (例如) S.next(75) 返回 4,因为截至今天的最后 4 个价格 (包括今天的价格 75) 小于或等于今天的价格。 提示: 调用 StockSpanner.next(int price) 时,将有 1 <= price <= 10^5。 每个测试用例最多可以调用 10000 次 StockSpanner.next。 在所有测试用例中,最多调用 150000 次 StockSpanner.next。 此问题的总时间限制减少了 50%。
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2. 解题
class StockSpanner { stack<pair<int,int>> stk; int days; public: StockSpanner() { } int next(int price) { days = 1; while(!stk.empty() && price >= stk.top().first) { days += stk.top().second;//个数合并 stk.pop();//删除小的 } stk.push({price,days}); return days; } };
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算