84. Largest Rectangle in Histogram
来源:互联网 发布:mac怎么全屏预览图片 编辑:程序博客网 时间:2024/05/05 14:57
题目:
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.
找直方图中面积最大的矩形框,求面积。
思路:从左到右处理直方图
public class Solution { public int largestRectangleArea(int[] heights) { //栈存储递增的直方图的下标 Deque<Integer> stack = new LinkedList<Integer>(); int result=0; int i=0; while (i<heights.length) { //每次比较栈顶与当前位置的元素大小,若当前值大于栈顶元素,入栈; //栈为空,入栈 if(stack.isEmpty() || heights[i]>heights[stack.peekFirst()]) stack.addFirst(i++); else { //当前值小于栈顶元素,合并现有栈,直到栈顶元素小于当前元素值 int tmp = stack.removeFirst(); result= Math.max(result, heights[tmp]*(stack.isEmpty() ? i : (i-stack.peekFirst()-1))); } } //处理未出栈的元素 while(!stack.isEmpty()) { int tmp = stack.removeFirst(); result = Math.max(result, heights[tmp]*(stack.isEmpty() ? heights.length : (heights.length-stack.peekFirst()-1))); } return result; }}
0 0
- 84. Largest Rectangle in Histogram
- 84. Largest Rectangle in Histogram
- 84. Largest Rectangle in Histogram
- 84. largest rectangle in histogram
- 84. Largest Rectangle in Histogram
- 84.Largest Rectangle in Histogram
- 84. Largest Rectangle in Histogram
- 84. Largest Rectangle in Histogram
- 84. Largest Rectangle in Histogram
- 84. Largest Rectangle in Histogram
- 84. Largest Rectangle in Histogram
- 84. Largest Rectangle in Histogram
- 84. Largest Rectangle in Histogram
- 84. Largest Rectangle in Histogram
- 84. Largest Rectangle in Histogram
- 84. Largest Rectangle in Histogram
- 84. Largest Rectangle in Histogram
- 84. Largest Rectangle in Histogram
- 备忘之在使用iap时应用程序不能仿真的问题
- 之字形字符串转换
- Android MVP中的Model最初的认识
- SGU 210. Beloved Sons(二分图匹配)
- Centos 安装Sublime text 3
- 84. Largest Rectangle in Histogram
- 93. Restore IP Addresses
- Eclipse提升开发效率的快捷键
- 数据结构笔记整理第8章:查找
- Centos 7 Gnome创建桌面快捷方式
- javaweb学习总结(四十六)——Filter(过滤器)常见应用
- 【FFMpeg视频开发与应用基础】二、调用FFmpeg SDK对YUV视频序列进行编码
- javascript-第六节-函数的定义和使用
- how to install Matlab API in caffe