当前位置: 首页 > news >正文

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

84. 柱状图中最大的矩形

给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。

求在该柱状图中,能够勾勒出来的矩形的最大面积。

示例 1:

输入:heights = [2,1,5,6,2,3]
输出:10
解释:最大的矩形为图中红色区域,面积为 10

示例 2:

输入: heights = [2,4]
输出: 4
思路:

        /*

            单调递减栈

            遍历到的数组元素大于或等于栈顶元素,压入栈

            遍历到的数组元素小于栈顶元素,取出栈顶元素为middle,st.pop(),heights[i] = right; left = st.top();

            h = height[middle];

            w = i-st.top()-1;

            遍历到的数组元素小于栈顶元素的判断是持续性的判断

            result = max(h*w,result);

        */

代码:
class Solution {
public:int largestRectangleArea(vector<int>& heights) {/*单调递减栈遍历到的数组元素大于或等于栈顶元素,压入栈遍历到的数组元素小于栈顶元素,取出栈顶元素为middle,st.pop(),heights[i] = right; left = st.top();h = height[middle];w = i-st.top()-1;遍历到的数组元素小于栈顶元素的判断是持续性的判断result = max(h*w,result); */int result = 0;stack<int>st;st.push(0);heights.insert(heights.begin(),0);heights.push_back(0);for(int i = 1;i<heights.size();i++){if(heights[i]>heights[st.top()]){st.push(i);}else if(heights[i]==heights[st.top()]){st.push(i);}else{while(!st.empty()&&heights[i]<heights[st.top()]){int middle = st.top();st.pop();if(!st.empty()){int right = i;int left = st.top();int h = heights[middle];int w = right-left-1;result = max(result,h*w);}}}st.push(i);}return result;}
};

还有很多瑕疵,还需继续坚持!

http://www.lryc.cn/news/205437.html

相关文章:

  • ubuntu 安装 gnome 安装 xrdp
  • 微信小程序——后台交互
  • 3D模型如何添加表面贴图?
  • C语言之函数详解
  • 华纳云:mysql创建触发器报错的原因及解决方法是什么
  • C++笔记之初始化二维矩阵的方法
  • ArrayList与List的层级关系及ArrayList解析
  • 智慧公厕设备选型攻略,打造智能化便利生活体验
  • TCP 协议的可靠传输机制是怎样实现的?
  • Antv G6入门之旅--combo图
  • 聊聊分布式架构09——分布式中的一致性协议
  • 探索流视频的发送
  • [ACTF2020 新生赛]Include 1
  • 教师必备宝藏,强烈推荐
  • 「北大社送书」学习MATLAB—从算法到实战
  • clion安装C++远程linux开发并调试 从装centos虚拟机到完美开发调试
  • Android笔记
  • Java虚拟机内存区域、异常、垃圾收集器
  • 深入理解JVM虚拟机第十三篇:详解JVM中的程序计数器
  • 《合成孔径雷达成像算法与实现》Figure5.5
  • leetcode经典面试150题---2.移除元素
  • 【尘缘赠书活动:01期】Python数据挖掘——入门进阶与实用案例分析
  • 计算机网络(谢希仁)第八版课后题答案(第二章)
  • 搭建nuxt3项目(框架构建)
  • 系统架构设计之微内核架构(Microkernel Architecture)
  • 51单片机实现换能器超声波测水深
  • Spring Cloud Config
  • 易基因: Nature Biotech:番茄细菌性青枯病的噬菌体联合治疗|国人佳作
  • 震坤行亮相2023工博会,并荣获第23届中国工博会“CIIF信息技术奖”
  • 灯带代码实现