单调栈:


就是说:固定高度,寻找最长宽度,如何找最长宽度,需要从heights[i] 这一个元素开始向左向右两边寻找heights[j] - class Solution {
- public:
- int largestRectangleArea(vector<int>& heights) {
- stack<int> stk;
- int n=heights.size();
- vector<int> left(n,0);
- vector<int> right(n,0);
- for(int i=0;i
- while(stk.size()&&heights[stk.top()]>=heights[i])
- stk.pop();
- left[i] = (stk.size()==0? -1:stk.top());
- stk.push(i);
- }
- stk=stack<int>();
- for(int i=n-1;i>=0;i--){
- while(stk.size()&&heights[stk.top()]>=heights[i])
- stk.pop();
- right[i] = (stk.size()==0?n:stk.top());
- stk.push(i);
- }
- int res=0;
- for(int i=0;i
- res=max(res, (right[i]-left[i]-1)*heights[i]);
- }
- return res;
-
- }
- };
-
相关阅读:
Redis中的Lua脚本(五)
zookeeper异常 Cannot open channel to 3 at election address
分享一个简单容易上手的CSS框架:Pure.Css
拓展:Microsoft密钥类型说明
设计模式:里氏代换原则(Liskov Substitution Principle,LSP)介绍
dpdk rte_memzone_reserve
网络架构介绍
vue2.0动态数据表格
几分钟搞懂git常用操作
记一次spark数据倾斜实践
-
原文地址:https://blog.csdn.net/weixin_40823740/article/details/139753700