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.
Example:
1
2
Input: [2,1,5,6,2,3]
Output: 10
Answer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class{
publicintlargestRectangleArea(int[] heights){
if(heights == null || heights.length == 0)
return0;
Stack<Integer> stack = new Stack<>();
int h = 0, w = 0, area = 0;
for(int i=0;i<=heights.length;i++){
int current = (i==heights.length) ? -1 : heights[i];
近期评论