LeetCode - Largest Rectangle in Histogram 题解
来源:互联网 发布:linux查看sd卡 编辑:程序博客网 时间:2024/05/17 03:08
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 bar is 1, given height = [2,1,5,6,2,3]
.
The largest rectangle is shown in the shaded area, which has area = 10
unit.
For example,
Given height = [2,1,5,6,2,3]
,
return 10
.
思路:
首先可以想到沿每个点向左向右延伸,O(N^2)
这样太慢,想到可以将左边的低点一个个保存下来,可以直接计算。
于是可以用一个栈维护一个递增序列,每遇到一个点就将原先栈里比当前点高的点出栈,每次出栈时以出栈点为中心更新一下最大值。
class Solution {private: int maxx;public: int largestRectangleArea(vector<int> &height) { maxx = 0; height.push_back(-1); int num = height.size(); stack<int> S; for(int i = 0; i < num; i++){ if(S.empty() || height[S.top()] < height[i]) { S.push(i); } else{ while(!S.empty() && height[S.top()] >= height[i]){ int k = S.top(); S.pop(); if(!S.empty()){ maxx = max(maxx, height[k] * (i - 1 - S.top())); } else{ maxx = max(maxx, height[k] * i); } } S.push(i); } } return maxx; }};
0 0
- LeetCode - Largest Rectangle in Histogram 题解
- leetcode题解-84. Largest Rectangle in Histogram
- leetcode题解-84.Largest Rectangle in Histogram
- LeetCode 题解(99): Largest Rectangle in Histogram
- Leetcode题解14 84. Largest Rectangle in Histogram(hard)
- leetcode题解分析_84. Largest Rectangle in Histogram
- LeetCode No.84 Largest Rectangle in Histogram 题解
- LeetCode: Largest Rectangle in Histogram
- LeetCode Largest Rectangle in Histogram
- LeetCode: Largest Rectangle in Histogram
- [Leetcode] Largest Rectangle in Histogram
- [LeetCode] Largest Rectangle in Histogram
- [Leetcode] Largest Rectangle in Histogram
- [leetcode] Largest Rectangle in Histogram
- [LeetCode]Largest Rectangle in Histogram
- Leetcode: Largest Rectangle in Histogram
- [leetcode]Largest Rectangle in Histogram
- Leetcode:Largest Rectangle in Histogram
- httpd服务为什么不能填加到服务列表中呢?
- JSP标签详解
- Android 操作以太网,监听网线插拔和以太网开关,设置以太网静态IP等。
- SGU 495 Kids and Prizes (二项分布)
- 如何让它开机自动设置?
- LeetCode - Largest Rectangle in Histogram 题解
- 蓝牙真机调试Android Wear App & 真机卸载调试的App
- bzoj1833: [ZJOI2010]count 数字计数 数位dp
- redhat8.0支持双CPU吗?
- WaitHandle——使用ManualResetEvent
- 多个经典英语学习网站
- egweg
- 网球之发球技术解析
- 取模、乘法和除法运算在CPU和GPU上的效率