zoukankan      html  css  js  c++  java
  • 【leetcode-84】 柱状图中最大的矩形

    (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;
    
        }
    }
  • 相关阅读:
    redis的间隔性速度慢的问题
    centos增加静态路由
    排查问题的一些基本命令
    laradock
    python之sqlalchemy基本
    ssl证书之certbot
    mysql 多实例
    模块和包
    异步
    WSGI
  • 原文地址:https://www.cnblogs.com/twoheads/p/10607437.html
Copyright © 2011-2022 走看看