您的位置:首页 > 其它

LeetCode:Largest Rectangle in Histogram

2016-06-15 20:27 246 查看


Largest Rectangle in Histogram

Total Accepted: 61747 Total
Submissions: 252559 Difficulty: Hard

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 heights =
[2,1,5,6,2,3]
,

return
10
.

Subscribe to see which companies asked this question

Hide Tags
Array Stack

Hide Similar Problems
(H) Maximal Rectangle

思路:

详细分析,可参考:/article/2749967.html

java code:

public class Solution {
public int largestRectangleArea(int[] heights) {

Stack<Integer> index = new Stack<Integer>();
int len = heights.length;
int maxArea = 0;
int i = 0;
while(i <= len) {
int h  = (i==len) ? 0 : heights[i];
if(index.isEmpty() || h >= heights[index.peek()])
index.push(i++);
else {
int tmp = index.pop();
int wid = index.empty() ? i : i-index.peek()-1;
maxArea = Math.max(maxArea, heights[tmp] * wid);
}
}
return maxArea;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: