Stack-----84. Largest Rectangle in Histogram
来源:互联网 发布:和硕鼠类似的软件 编辑:程序博客网 时间:2024/05/22 08:25
原题目
参考资料
这种实在是,。,。记得有几种类型的题都是两个指针中间挤,其实这里是一点思路都没有,因为涉及到保留之前的数据,两个指针就不是那么好用了。下面这种解法还是比较新奇的,用一个栈来保留前面递增的索引号,然后从当前索引往前面进行倒推计算。
public int largestRectangleArea(int[] heights) { if (heights == null || heights.length == 0) { return 0; } Stack<Integer> stack = new Stack<>(); int max = Integer.MIN_VALUE; int current = 0; for (int i = 0; i <= heights.length; i++) { if (i != heights.length - 1) { current = -1; } else { current = heights[i]; } while (!stack.isEmpty() && current <= heights[stack.peek()]) { int height = heights[stack.pop()]; int w = 0; //栈为空的条件要注意,这里的stack为空的时候可能是前面历史留下来的 if (stack.isEmpty()) { w = i; } else { w = i - stack.peek() - 1; } max = Math.max(max, height * w); } stack.push(i); } return max; }
阅读全文
0 0
- Stack-----84. Largest Rectangle in Histogram
- stack--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
- web前端开发-html 5基础之标题标签
- Windons 和 Alt 快捷键
- 各种字符编码方式详解及由来(ANSI,GB2312,GBK,UNICODE,UTF-8)
- python入门(十三):生成器和迭代器
- css解决数字字母自动换行
- Stack-----84. Largest Rectangle in Histogram
- <线段树系列3> codevs 1082 线段树练习3
- error LNK2001: 无法解析的外部符号 __imp__DeleteDC@4
- MySql中一次查询结果用作二次查询条件
- 【机器学习入门】公开课笔记:笔记简介
- ACM tarjan连通图 迷宫城堡
- linux进程通信IPC之IPC_PRIVATE与ftok比较
- uC/OS-II系统学习笔记(1)——实时操作系统概念上篇
- tp5+mysql实现消息队列,并在mac系统下定时执行