标签:
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
思路:
详细分析,可参考:http://blog.csdn.net/doc_sgl/article/details/11805519
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; } }
LeetCode:Largest Rectangle in Histogram
标签:
原文地址:http://blog.csdn.net/itismelzp/article/details/51685098