(1pass,比较简单的hard)

给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。

求在该柱状图中,能够勾勒出来的矩形的最大面积。

以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]

图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。

// 以每一柱为高向两边延伸
public class LargestRectangleArea {
int max = 0;
public int largestRectangleArea(int[] heights) {
for (int i=0;i<heights.length;i++) {
int height = heights[i];
int left = i;
int right = i;
while(--left>=0) {
if (heights[left] < heights[i]){
break;
}
}
while(++right<=heights.length-1) {
if (heights[right] < heights[i]){
break;
}
}
int length = right - left - 1;
if (max < length*height) {
max = length*height;
}
}
return max; }
}

最新文章

  1. ueditor工具栏新增按钮教程
  2. SSH项目Class类的注解与属性的注解
  3. jdbc实现简单的增删改查
  4. H264 TS/ES
  5. 转:C++ 性能测试支持
  6. [Quick-x]制作新手引导高亮区域方法之二:裁剪模式
  7. 在eclipse下远程调试hadoop2.0
  8. SQL Server 2008连接字符串写法大全(摘自网络)
  9. vue安装scss,并且全局引入
  10. Bellman-Ford算法(在边权可正可负时求最短路)
  11. json_decode与json_encode容易被忽视的点
  12. nodejs 利用zip-local模块压缩文件夹
  13. WordPress 新版本中编辑器不好用, 使用原有编辑器
  14. 正则表达式识别js跳转的链接
  15. Golang时间函数及测试函数执行时间案例
  16. java 线程Thread 技术--创建线程的方式
  17. MySql(十四):MySql架构设计——可扩展性设计之数据切分
  18. vue中给请求到的数据对象加属性问题
  19. solr学习四(关于性能的杂知识)
  20. C# 读取config

热门文章

  1. Django 调用报错 &quot; ImportError: Couldn&#39;t import Django. &quot;
  2. 【 HDU4773 】Problem of Apollonius (圆的反演)
  3. 栈长这里是生成了一个 Maven 示例项目。
  4. 【BZOJ5305】[HAOI2018]苹果树(组合计数)
  5. 【BZOJ5291】[BJOI2018]链上二次求和(线段树)
  6. ACM-ICPC 2017 Asia Xi&#39;an A XOR (线性基+线段树思想)
  7. Spring 声明式事务
  8. Lambda 表达式有何用处?如何使用?
  9. JS小积累(一)— 判断在线离线
  10. 分布式监控系统Zabbix--使用Grafana进行图形展示