首页 > 其他分享 >(60/60)last dance|柱状图中最大的矩形

(60/60)last dance|柱状图中最大的矩形

时间:2024-03-28 17:13:25浏览次数:9  
标签:last int st 60 柱状图 result heights

last dance

柱状图中最大的矩形

leetcode:84. 柱状图中最大的矩形

单调栈

思路

和接雨水很类似,但需要首尾加0(尾0是为了触发计算,首0是为了避免首元素触发计算时没有left)

注意点

  1. 尾加0后还是要遍历到heights.size()-1,因为是以取出元素为基准计算的,而取出元素是当前遍历元素的上一个。

代码实现

class Solution {
public:
/*
类接雨水,但需要首尾加0(尾0是为了触发计算,首0是为了避免首元素触发计算时没有left)

*/
    int largestRectangleArea(vector<int>& heights) {
        stack<int> st;  // 存下标
        st.push(0);
        int result = 0;
        heights.insert(heights.begin(),0);heights.push_back(0);
        for(int i = 1;i < heights.size();i++){
            while(!st.empty() && heights[i] < heights[st.top()]){
                int mid = st.top();st.pop();
                if(!st.empty()){
                    int h = heights[mid];   // 以当前取出元素为基准
                    int w = i - st.top() - 1;
                    result = max(result,h*w);
                }
            }
            st.push(i);
        }

        return result;
    }
};

标签:last,int,st,60,柱状图,result,heights
From: https://www.cnblogs.com/tazdingo/p/18102150

相关文章

  • (59/60)下一个更大元素Ⅱ、接雨水
    终于接到你下一个更大元素Ⅱleetcode:496.下一个更大元素I单调栈思路主要是循环数组的处理。直接等效为长度为2N,重复两遍的原数组即可,i<nums.size()变为i<2*nums.size()、i变为i%nums.size()。代码实现对每个元素都再遍历一遍原数组长度,,,时间复杂度O(N^2),超时了clas......
  • 听劝!24 选错 660/880/1000的人,已经二战了
    25考研的备考形势,势必跟以前不一样了。24考完,大家都发现,没有一本习题册,覆盖了考试的所有知识点。主流的模拟卷,都没有达到24卷的难度。这就意味着:一本习题册不够了!刷主流模拟卷不够了!这会需要整个考研复习的安排,作一个很大的调整。如果你还在看24以前的学长规划,它就可能......
  • 代码随想录算法训练营第六十天|● 84.柱状图中最大的矩形
    柱状图中最大的矩形题目链接:84.柱状图中最大的矩形-力扣(LeetCode)思路:掌握了……吗?还是参考了下官网思路。代码随想录(programmercarl.com)classSolution{public:intlargestRectangleArea(vector<int>&heights){intresult=0;stack<int>st;......
  • Elasticsearch入门及常用命令和Spring中的常用操作
    入门官网简介一个分布式的、Restful风格的搜索引擎。支持对各种类型的数据的检索。搜索速度快,可以提供实时的搜索服务。便于水平扩展,每秒可以处理PB级海量数据。常用术语索引:与MySQL数据库中的Database相对应类型:与MySQL数据库中的Table相对应文档:相当于MySQL中的一......
  • springboot 集成elasticsearch Ik分词
    前提是我们elasticsearch服务已经集成了IK分词,具体集成下载对应的elasticsearchIK分词插件,在es插件包下创建IK文件夹,将下载好的IK包上传上去解压后重启es1、pom引入co.elastic.clientselasticsearch-java7.16.2jakarta.jsonjakarta.json-api2.0.1org.springframew......
  • 旷场实验KT-0860——观察研究实验动物神经精神变化
    旷场是观察研究实验动物神经精神变化、进入开阔环境后的各种行为,例如动物对新开阔环境的恐惧而主要在周边区域活动,在中间区域活动较少,但动物的探究特性又促使其产生在中间区域活动的动机,也可观察由此而产生的焦虑心理。兴奋药可以明显增加自主的活动而减少探究行为,在统一些剂......
  • 以太网芯片的配置:VSC8601和YT8531
    使用以太网芯片你需要关心的:1.phyaddress;2.delay;目的:RX_CLK(atReceiver)是在RX_CLK(atTransmitter)的基础上相移90°左右而得,这样采集到的数据会更加稳定。3.resettime;VSC8601参考:https://cloud.tencent.com/developer/article/1614786MDIO配置时序:PHYaddress......
  • 【Azure Cloud Service】部署云服务时候遇见 Last exit code: 0. Last role exception
    问题描述部署云服务时候遇见Lastexitcode:0.Lastroleexception:(System.IO.FileNotFoundException)错误,提示无法加载System.Runtime。Recoveringrole...Applicationstartuptask0finishedsuccessfully.Lastexittime:[2024/03/27,20:23:31.142].Lastexit......
  • ElasticSearch的搜索相关操作
    1、基本介绍Elasticsearch的查询是基于JSON风格的DSL(DomainSpecificLanguage)来实现的。常见的查询类型包括:查询所有:查询出所有数据,一般测试用。例如:match_all全文检索(fulltext)查询:利用分词器对用户输入内容分词,然后去倒排索引库中匹配。例如:match、multi_match精确......
  • 二进制部署elasticsearch集群
    部署elasticsearch7.17.3版本背景:  业务有需求看evenet事件,由于etcd集群中的eventkey频繁打到200w+,对etcd集群压力非常大,每次都需要手动删除eventkey,非常耗时间,而且风险特别好,恢复时间慢等缺点。解决方案:  1,拆分etcd集群中的eventkey,在本机上创建一个新的etcd集群,......