【单调栈】LeetCode 901. 股票价格跨度

题目链接

股票价格跨度

注意事项

使用单调栈

代码

class StockSpanner {
public:
    StockSpanner() {

        this->stk.emplace(-1, INT_MAX);
        this->idx = -1;
    }

    int next(int price) {

        idx++;
        while (price >= stk.top().second) {
            stk.pop();
        }

        int ret = idx - stk.top().first;
        stk.emplace(idx, price);
        
        return ret;
    }

private:
    stack<pair<int, int>> stk;
    int idx;
};
posted @   Frodo1124  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示