901. 股票价格跨度(递减栈)

Posted vampire6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了901. 股票价格跨度(递减栈)相关的知识,希望对你有一定的参考价值。

901. 股票价格跨度

技术图片

 

 

class StockSpanner {
public:
    StockSpanner() {

    }
    int next(int price) {
        int d=1;
        while(!value.empty()&&price>=value.top())//价格栈不为空且当前的价格大于等于价格栈的顶元素
        {
            d+=get.top();//当前跨度为1加上跨度顶的元素
            value.pop();
            get.pop();//每个栈删去栈顶元素
        }
        value.push(price);//每次存价格进去
        get.push(d);//把对应的跨度存进去
        return d;
    }
    private:
        stack<int>value;
        stack<int>get;
};

/**
 * Your StockSpanner object will be instantiated and called as such:
 * StockSpanner* obj = new StockSpanner();
 * int param_1 = obj->next(price);
 */

 

以上是关于901. 股票价格跨度(递减栈)的主要内容,如果未能解决你的问题,请参考以下文章

901. 股票价格跨度

LeetCode 0901. 股票价格跨度

数据结构与算法之深入解析“股票价格跨度”的求解思路与算法示例

面试题打卡——C++版

LeetCode:121.股票问题(简单)

抓取当前股票价格并创建数据框