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;
    }
};
相关推荐
吞下星星的少年·-·3 分钟前
Div.2 CF edu195A题(数学,贪心)
数学·算法·贪心
罗湖老棍子9 分钟前
【例 2】牧场的安排(信息学奥赛一本通- P1593)三角形牧场(洛谷-P1284)
算法·动态规划·状压dp·状态压缩动态规划
HPtiger11 分钟前
交换类排序详解:冒泡排序与快速排序
数据结构·算法·排序算法
钟小羊职业履历核验专家1 小时前
履历真实性异常的补证与独立复核如何完成
职场和发展
Cccp.1231 小时前
【leetcode】(十四)从暴力递归到动态规划
数据结构·算法·leetcode·动态规划
旖旎夜光2 小时前
LeetCode 215: 数组中的第K个最大元素 (快速排序) —— 题解
c++·学习·算法·leetcode·力控
技术胖2 小时前
奎爷巡演 AIGC 视频教程 文档
算法
德彪稳坐倒骑驴2 小时前
Leetcode力扣刷题记录与题解
算法·leetcode·职场和发展
lzhdim8 小时前
AI的分类
人工智能·算法·机器学习·分类·数据挖掘
凤凰院凶涛QAQ11 小时前
《Java版数据结构 & 集合类剖析》Map & Set & 反射:“从哈希碰撞到红黑树转换,反射帮你扒开 HashMap 的桶数组看个究竟”
java·数据结构·算法