[LeetCode] 84. Largest Rectangle in Histogram

LeetCode刷题:84. Largest Rectangle in Histogram LeetCode刷题:84. Largest Rectangle in Histogram 原题链接:https://leetcode.com/problems/largest-rectangle-in-histogram/ Givennnon-negative integers representing the histogram's bar height where the width... 阅读详情

Largest Rectangle in Histogram

Given n non-negative integers representing the histogram’s bar height where the width of each bar is 1, find the area of largest rectangle in the histogram.
在这里插入图片描述
Example:

Input: [2,1,5,6,2,3]
Output: 10

解法1

在每个局部峰值的时候往前遍历所有的可能的矩阵大小,找到最大的。
局部峰值的意思就是当前值比下一个值大,比如例子中的2,6,3。

class Solution {
public:
    int largestRectangleArea(vector<int>& heights) {
        int len = heights.size();
        if (len == 0)
            return 0;
        int max_value = 0;
        for(int i=0;i<len;i++){
            if(i==len-1 || heights[i]>heights[i+1]){
                int min_value = INT_MAX;
                for(int j=i;j>=0;j--){
                    min_value = min(min_value, heights[j]);
                    max_value = max(max_value, min_value*(i-j+1));
                }
            }
        }
        return max_value;
    }
};

解法2:单调栈

维护一个单调递增的栈,保存单调递增的高度的下标,便于计算间隔。
在heights的末尾加上一个0,便于处理最后一个高度值。

class Solution {
public:
    int largestRectangleArea(vector<int>& heights) {
        int len = heights.size();
        if (len == 0)
            return 0;
        int max_value = 0;
        stack<int> index;
        heights.push_back(0);
        for(int i=0;i<=len;i++){
            if(index.empty() || heights[i] >= heights[index.top()])
                index.push(i);
            else{
                while(!index.empty() && heights[index.top()] > heights[i]){
                    int cur = index.top(); 
                    index.pop();
                    max_value = max(max_value, heights[cur]*(index.empty() ? i : i-index.top()-1));
                }
                index.push(i);
            }
            
            
        }
        return max_value;
    }
};

参考

https://www.cnblogs.com/grandyang/p/4322653.html

手把手教你用三极管搭建麦克风音频放大电路(附完整电路图) 本文详细介绍了如何使用三极管搭建麦克风音频放大电路,包括电路设计基础、元件选择、完整电路图及分步焊接指南。通过实际操作和调试技巧,帮助电子爱好者和学生深入理解模拟电路原理,实现音质清晰的音频放大效果。 阅读详情

相关推荐

Cursor集成Claude 4.6免费版:本地IDE合规调用指南

大语言模型编程助手(LLM Copilot)已成为现代开发标配,其核心能力依赖于上下文理解、代码推理与结构化输出等关键技术原理。Anthropic官方提供的Claude系列模型,尤其Claude 4.6,凭借200K超长上下文、tool use函数调用和严格可控的API设计,在工程实践中展现出显著技术价值。该能力可无缝嵌入本地IDE环境,支撑代码解释、跨文件分析、单元测试生成等高频开发场景。本文聚焦Cursor这一开源可审计IDE,详解如何合规复用Anthropic免费tier接口(/v1/messages

weixin_34095889的博客 537

【LeetCode】解题84:Largest Rectangle in Histogram

LeetCode解题 84:Largest Rectangle in Histogram Problem 84: Largest Rectangle in Histogram [Hard]解题思路1. 分治法2. 栈Solution (Java)修改过程 Problem 84: Largest Rectangle in Histogram [Hard] Given n non-negative i...

Fayedily的博客 342

单相PWM整流器的数学模型、工作原理

单相PWM整流器的数学模型、工作原理

weixin_58670090的博客 1万+

[LeetCode 84, 85]Largest Rectangle in Histogram / Maximal Rectangle

LeetCode第84,85号题,解题报告。利用栈的O(n)算法

zlasd的博客 423

PCIe链路训练Recovery状态机:从RcvrLock到链路稳定的关键路径

本文深入解析PCIe链路训练中的Recovery状态机,特别是RcvrLock状态的关键作用。从Block对齐、均衡预设值应用到状态转移条件,详细介绍了确保链路稳定的技术要点,并提供了高速率下的特殊处理方法和常见问题排查指南,帮助工程师解决PCIe链路不稳定问题。

weixin_28739079的博客 174

MATLAB仿真实战:双有源桥(DAB)变换器的扩展移相调制(EPS)全流程解析

本文提供了一份详细的MATLAB/Simulink仿真实战指南,手把手解析双有源桥(DAB)变换器在扩展移相调制(EPS)下的全流程建模。内容涵盖从核心原理、主功率电路搭建、EPS驱动信号生成,到仿真运行、波形分析及模型优化的完整步骤,旨在帮助工程师和研究者快速掌握DAB变换器的仿真与性能验证方法。

o4p5q6r7s的博客 503

LeetCode84——Largest Rectangle in Histogram

在柱状图中找到面积最大的矩形。

上善若水 2079

减小伺服电机共振的方法(以松下伺服为例)

嘿 ! 我是【小黄】 , 我们又见面啦 !!! 毕竟技术只有大家交流才会进步嘛 ! 这博客是对自己学习的一点点记录和总结 ,如果您对自动控制感兴趣的话 ,可以关注一下我的动态 , 我们一起学习呀 ! 我们都还年轻 ,我们还有无限可能 。 YES ! 减小伺服电机共振的方法(以松下伺服为例)1. 准备工作:1.1.1 如何推定共振点:1.1.2 测定实操:1.1.3 总结:2. 下期预告: 在我们调试完伺服参数以后机器人运动到某个特定位置会产生振动或异响,我们要做的就是消除这个异响保..

在下小黄的博客 1万+

LeetCode Top 100 Liked Questions 84. Largest Rectangle in Histogram (Java版; Hard)

welcome to my blog LeetCode Top 100 Liked Questions 84. Largest Rectangle in Histogram (Java版; Hard) 题目描述 Given n non-negative integers representing the histogram's bar height where the width of each ...

littlehaes的博客 162

Windows Server 域控搭建:AD DS 规划、部署与排障实战

活动目录(AD DS)是 Windows Server 中用于集中管理账号、计算机与策略的核心目录服务,其底层依赖 DNS、Kerberos 和 LDAP 完成身份认证与资源定位。通过域控制器统一身份、组策略和权限边界,企业可显著降低多机环境下账号维护、权限分配与审计成本。十几到上百台终端、有共享隔离与合规要求的局域网,通常适合部署域控;小规模环境则未必划算。围绕域名规划、DNS 指向、OU 设计、FSMO、备份恢复和常见加域故障,域控搭建与 AD 运维需要兼顾前期规划与长期排障,才能让 Windows S

weixin_33845881的博客 761

Unity引擎开发:复杂动作系统_动作捕捉数据的应用与整合

通过以上步骤,我们可以在Unity中有效地应用和整合动作捕捉数据,以实现更加真实和流畅的动画效果。从导入文件格式的选择,到预处理和优化,再到实时应用和调试验证,每一步都至关重要。希望本文能帮助你在Unity项目中更好地利用动作捕捉数据,提升动画质量和性能。

chenlz2007的博客 957

Leetcode 84. Largest Rectangle in Histogram

题目描述:找出数组中最大的矩形面积。 题目链接:Leetcode 84. Largest Rectangle in Histogram 题目思路:这个题目就是85. Maximal Rectangle的基础,求出最大面积高度,只要找到每个柱子左边第一个比他小,和右边第一个比它小的值,然后计算出短板*宽度就是面积了,如果用传统的方法就是循环对每个柱子做一次,这样的话如果所有柱子高度相同,时间...

Za七杂⑧ 390

SAP 生产订单工序删除状态撤回简介

2、我们在前台对于生产订单的状态一个是在生产订单抬头中的状态,另外一个是针对上面一直在测试的是工序的状态,这个两个状态是前台可见的状态,实际生产订单还有一个组件物料的状态,这个状态是不可见的一个状态。生产订单中的0010工序中对应的组件的栏位被标识,表示有物料分配到了0010的工序中,正常情况下0010的工序被分配了工序是不应该被删除的。将已领料的工序删除掉,导致异常的发生。当物料已领料会,用户仍然把已分配的物料的工序删除掉,导致后续业务操作过程中产生异常,如下图中所示,0010的工序被打上了删除标识。

我小时候很黑的博客 1939

[leetcode] 84. Largest Rectangle in Histogram

Description Given n non-negative integers representing the histogram’s bar height where the width of each bar is 1, find the area of largest rectangle in the histogram. Above is a histogram where wid...

Learning from the mistakes 195

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【LeetCode】 84. Largest Rectangle in Histogram

84. Largest Rectangle in Histogram

夏至亦韵 329

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

leetcode题解:第84题Largest Rectangle in Histogram

题目 Largest Rectangle in Histogram Given n non-negative integers representing the histogram’s bar height where the width of each bar is 1, find the area of largest rectangle in the histogram. Above i...

chenf1999的博客 694

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LeetCode 84. Largest Rectangle in Histogram

Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectangle in the histogram. Above is a histogram where width of ea

ActiveCoder的博客 845

Leetcode-84. Largest Rectangle in Histogram

公众号不定期发布一篇关于Leetcode解题技巧的文章,尝试从多角度、不同方法对题目进行解析。欢迎大家关注! 题目描述(困难难度) 给一个柱状图,输出一个矩形区域的最大面积。 解法一 暴力破解 以题目给出的例子为例,柱形图高度有 1, 2, 3, 5, 6,我们只需要找出每一个高度对应的最大的面积,选出最大的即可。如果求高度为 3 的面积最大的,我们只需要遍历每一个高度,然后看连续的大于等于 ...

猫敷雪 623

leetcode 84 Largest Rectangle in Histogram

leetcode 84 Largest Rectangle in Histogram

快递小可的博客 734

LeetCode84 Largest Rectangle in Histogram

LeetCode84 Largest Rectangle in Histogram问题链接 LeetCode84问题描述 Given n non-negative integers representing the histogram’s bar height where the width of each bar is 1, find the area of largest rectangle

yanqinghe123的专栏 334

leetcode 84.Largest Rectangle in Histogram, 85.Maximal Rectangle

leetcode 84.Largest Rectangle in Histogram(Hard) leetcode 85.Maximal Rectangle(Hard)

liquewei_26的博客 376

LeetCode 84. Largest Rectangle in Histogram 题解

本题是单调栈的经典应用,也是面试中的高频题目。单调递增栈:栈中元素的高度递增找到每个柱子的左右边界计算以每个柱子为高的矩形面积通过本题可以深入理解单调栈在解决"下一个更小/更大元素"类问题中的应用。

cannonjinx的博客 2180

LeetCode(84) Largest Rectangle in Histogram

题目Given n non-negative integers representing the histogram’s bar height where the width of each bar is 1, find the area of largest rectangle in the histogram. Above is a histogram where width of each

指尖飞舞 2717

LeetCode //C - 84. Largest Rectangle in Histogram

【代码】LeetCode //C - 84. Largest Rectangle in Histogram。

Made in Code 1077

LeetCode84 Largest Rectangle in Histogram java题解

题目: Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectangle in the histogram. Above is a histogram wher

u012249528的专栏 1413

【Leetcode】84. Largest Rectangle in Histogram

试想有这样的一棵树,其树根为全数组的最小值,其左孩子是其左边的所有数字的最小值,其右孩子是其右边子树的最小值,并且左右子树满足相同的性质。这里的单调严格不严格是不打紧的,都能保证答案正确,主要原因是,如果某个高度连续出现了若干次,当最后一次它出栈的时候,以它为高的最大矩形面积就被确定了,会更新res。3、它的每个节点的左子树的节点个数,是其左边连续的一段大于它的数的个数。它的每个节点的右子树的节点个数,是其右边连续的一段大于它的数的个数。的柱子,按照相同的手法求一遍栈内元素为高度的最大矩形面积即可。

数学、算法爱好者的博客 341
上一篇: [leetcode] 76. Minimum Window Substring
下一篇: [LeetCode] 93. Restore IP Addresses
Peng_maple
博客等级 码龄10年 0粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值