Largest Rectangle in Histogram
程序员文章站
2022-06-17 22:54:35
...
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
.
public class Solution {
public int largestRectangleArea(int[] height) {
Stack<Integer> stack = new Stack<Integer>();
int i = 0;
int maxArea = 0;
int[] tmp = Arrays.copyOf(height, height.length+1);
while (i < tmp.length) {
if (stack.isEmpty() || tmp[stack.peek()] <= tmp[i]) {
stack.push(i++);
} else {
int t = stack.pop();
maxArea = Math.max(maxArea, tmp[t]*(stack.isEmpty() ? i: (i-stack.peek()-1)));
}
}
return maxArea;
}
}
上一篇: linux下安装maven
下一篇: 前端程序员表白神器
推荐阅读
-
【题解】hdu1506 Largest Rectangle in a Histogram
-
教你利用Python玩转histogram直方图的五种方法
-
[Trie] The XOR Largest Pair
-
2019牛客暑期多校训练营(第二场)H Second Large Rectangle
-
The XOR Largest Pair(tire树)
-
Problem 8: Largest product in a series
-
Find the largest open file through lsof
-
Leetcode 391. Perfect Rectangle
-
5. Kth Largest Element
-
Largest Submatrix (最大全1子矩阵)