博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
84. Largest Rectangle in Histogram
阅读量:5127 次
发布时间:2019-06-13

本文共 1286 字,大约阅读时间需要 4 分钟。

/*     * 84. Largest Rectangle in Histogram      * 2016-5-13 by Mingyang     * 这里并不需要两个stack,只需要一个stack,装的是递增序列的index     * 直到遇到一个递减的时候,弹出来,求一个一个的面积大小     * 不过注意的是最后如果以递增的序列结尾的话,还需要一个一个的求完     */    public int largestRectangleArea(int[] height) {        if (height == null || height.length == 0) {            return 0;        }         Stack
stack = new Stack
(); int max = 0; int i = 0; while (i < height.length) { //push index to stack when the current height is larger than the previous one if (stack.isEmpty() || height[i] >= height[stack.peek()]) { stack.push(i); i++; } else { //calculate max value when the current height is less than the previous one int p = stack.pop(); int h = height[p]; int w = stack.isEmpty() ? i : i - stack.peek() - 1; max = Math.max(h * w, max); } } while (!stack.isEmpty()) { int p = stack.pop(); int h = height[p]; int w = stack.isEmpty() ? i : i - stack.peek() - 1; max = Math.max(h * w, max); } return max; }

 

转载于:https://www.cnblogs.com/zmyvszk/p/5494433.html

你可能感兴趣的文章
java学习第三天
查看>>
python目录
查看>>
django+uwsgi+nginx+sqlite3部署+screen
查看>>
Andriod小型管理系统(Activity,SQLite库操作,ListView操作)(源代码下载)
查看>>
在Server上得到数据组装成HTML后导出到Excel。两种方法。
查看>>
浅谈项目需求变更管理
查看>>
经典算法系列一-快速排序
查看>>
设置java web工程中默认访问首页的几种方式
查看>>
ASP.NET MVC 拓展ViewResult实现word文档下载
查看>>
8、RDD持久化
查看>>
第二次团队冲刺--2
查看>>
VMware Tools安装
查看>>
Linux上架设boost的安装及配置过程
查看>>
[转载]加密算法库Crypto——nodejs中间件系列
查看>>
zoj 2286 Sum of Divisors
查看>>
使用Xshell密钥认证机制远程登录Linux
查看>>
OpenCV之响应鼠标(三):响应鼠标信息
查看>>
Android 画图之 Matrix(一)
查看>>
List<T>列表通用过滤模块设计
查看>>
【模板】最小生成树
查看>>