leetcode 84 单调栈

这个题目的核心在于,当小柱子出现时,长柱子的结果立马可以被确定,可以归类为,找右边第一个小于自己的元素,从而规约到单调栈解法。

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

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

        for(int i=0;i<n;i++)
        {
            int h = heights[i];
            int mi = i;
            while(h < st.back().first)
            {
                ans = max(ans, st.back().first*(i-st.back().second));
                mi = st.back().second;
                st.pop_back();
            }
            st.push_back(P(h, mi));
        }

        return ans;
    }
};
相关推荐
罗西的思考1 分钟前
【OpenClaw】通过 Nanobot 源码学习架构---(5)Context
人工智能·算法·机器学习
Liudef0637 分钟前
后量子密码学(PQC)深度解析:算法原理、标准进展与软件开发行业的影响
算法·密码学·量子计算
OYpBNTQXi2 小时前
SEAL全同态加密CKKS方案入门详解
算法·机器学习·同态加密
蚂蚁数据AntData2 小时前
破解AI“机器味“困境:HeartBench评测实践详解
大数据·人工智能·算法·机器学习·语言模型·开源
ZC跨境爬虫2 小时前
Python异步IO详解:原理、应用场景与实战指南(高并发爬虫首选)
爬虫·python·算法·自动化
倦王3 小时前
力扣日刷47-补
python·算法·leetcode
沉鱼.443 小时前
第十三届题目
c语言·c++·算法
ZHOU_WUYI3 小时前
ppo算法简单实现
人工智能·pytorch·算法
无限进步_4 小时前
【C++】巧用静态变量与构造函数:一种非常规的求和实现
开发语言·c++·git·算法·leetcode·github·visual studio
小超超爱学习99374 小时前
大数乘法,超级简单模板
开发语言·c++·算法