leetcode 739 单调栈模板题

单调栈的主要应用场景:即找左边或右边第一个大于/小于自身的元素,可以说课这个题一模一样。栈中元素永远递减,当遇到大的,就一致排出,保持递减性

其中一类单调栈的核心:当打破单调性的新元素出现时,旧元素的值可以被确定。

cpp 复制代码
typedef pair<int, int> P;

class Solution {
public:
    vector<int> dailyTemperatures(vector<int>& temperatures) {
        int n = temperatures.size();
        vector<int> ans(n, 0);
        vector<P> st{P(INT_MAX, -1)};

        for(int i=0;i<n;i++)
        {
            int temp = temperatures[i];
            while(temp > st.back().first)
            {
                int pos = st.back().second;
                ans[pos] = i - pos;
                st.pop_back();
            }
            st.push_back(P(temp, i));
        }

        return ans;
    }
};
相关推荐
宝贝儿好6 小时前
【强化学习实战】第十一章:Gymnasium库的介绍和使用(1)、出租车游戏代码详解(Sarsa & Q learning)
人工智能·python·深度学习·算法·游戏·机器学习
pao__pao_9 小时前
计算机系统大作业 程序人生-Hello’s P2P
程序人生·职场和发展·课程设计
munubak9 小时前
程序人生-Hello’s P2P
程序人生·职场和发展
努力学算法的蒟蒻10 小时前
day109(3.10)——leetcode面试经典150
面试·职场和发展
芝士爱知识a10 小时前
【程序人生】码农考公指南:是“降维打击”还是“围城自困”?
程序人生·职场和发展·程序员·公务员·考公·职场规划
炒鸡菜66610 小时前
程序人生-Hello’s P2P
c语言·程序人生·职场和发展
weixin_4588726110 小时前
东华复试OJ二刷复盘2
算法
Charlie_lll10 小时前
力扣解题-637. 二叉树的层平均值
算法·leetcode
爱淋雨的男人10 小时前
自动驾驶感知相关算法
人工智能·算法·自动驾驶