直方图内最大矩形:用栈实现一些之前可以确定的值。
来源:互联网 发布:足球球员数据统计表格 编辑:程序博客网 时间:2024/06/07 04:00
题目描述
有一个直方图,用一个整数数组表示,其中每列的宽度为1,求所给直方图包含的最大矩形面积。比如,对于直方图[2,7,9,4],它所包含的最大矩形的面积为14(即[7,9]包涵的7x2的矩形)。
给定一个直方图A及它的总宽度n,请返回最大矩形面积。保证直方图宽度小于等于500。保证结果在int范围内。
测试样例:
[2,7,9,4,1],5
返回:14
思路:用栈实现一些之前可以确定的值。
struct Rect{ int height; int width;};/* 以[2,7,9,4,1]为例,当遍历到4时,代表7,9所生成的面积已经可以完全确定。所以这题可以用栈实现,且时间为O(n)*/class MaxInnerRec {public: int countArea(vector<int> A, int n) { stack<Rect> st; A.push_back(0); int maxs=0; for (int i = 0; i < n+1; ++i) { Rect node; Rect cur; node.height=A[i]; node.width=1; int lastwidth=0; while(!st.empty()&&st.top().height>A[i]){//栈中比当前A[i]大的所有可产生的矩形面积均可确定。 cur=st.top(); st.pop(); cur.width+=lastwidth; lastwidth=cur.width; int s=cur.height*cur.width; if(s>maxs) maxs=s; } node.width+=lastwidth; st.push(node); } return maxs; }};
0 0
- 直方图内最大矩形:用栈实现一些之前可以确定的值。
- 直方图内最大矩形
- 直方图内最大矩形
- 直方图内最大矩形
- 直方图内最大矩形
- 直方图内最大矩形
- 直方图内最大矩形
- 直方图内最大矩形
- (牛客)直方图内最大矩形
- 直方图内最大矩形问题
- 美团 直方图内最大矩形
- 华为机试---直方图内最大矩形
- lintcode[122]:直方图内最大矩形面积
- 美团-直方图内最大矩形-Java
- 【美团】直方图内最大矩形
- 动态规划-直方图内最大矩形
- 单调栈——(直方图内最大矩形 || 最大全1子矩阵 )
- 寻找直方图中面积最大的矩形
- DatePicker隐藏“天”选择
- 微信小程序 图片宽度自动
- int float double BigDecimal
- 7Java学习笔记之数据结构——HashMap
- 【个人笔记重点,不作为参考】主题:angular2.0笔记
- 直方图内最大矩形:用栈实现一些之前可以确定的值。
- hdu 1455 Sticks 【dfs剪枝】
- Weka连接数据库不成功:unable to find a suitable driver for jdbc:mysql://localhost/programmableweb
- getaddrinfo简单应用——取得IP地址
- Android 数据库升级详解,初级小白专用。
- 浅谈C# 多态的魅力(虚方法,抽象,接口实现)
- Day4 某菜狗子的练习,查找字符串中重复的元素并输出
- idea与tomcat问题
- C++作业4