• Largest Rectangle in Histogram


    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.

    For example,
    Given heights = [2,1,5,6,2,3],
    return 10.

    class Solution {
    public:
        int largestRectangleArea(vector<int>& heights) {
            heights.push_back(0);
            stack<int> s;
            int res = 0;
            int i = 0;
            while(i < heights.size()){
                if(s.empty() || heights[i] > heights[s.top()]){
                    s.push(i);
                    i++;
                }else{
                    int cur = s.top();
                    s.pop();
                    if(s.empty()){
                        res = max(res,heights[cur]*i);
                    }else{
                        res = max(res,heights[cur]*(i-s.top()-1));
                    }
                }
            }
            return res;
            
        }
    };
  • 相关阅读:
    jquery 异常
    easyui datagrid 单击行不选择行
    java 简单实现上传 | commons-fileupload
    abator ibatis 构建过程
    mysql 杂笔
    eclipse杂笔
    maven 构建项目
    ubuntu随笔
    powershell:convert-path
    maven学习笔记1
  • 原文地址:https://www.cnblogs.com/wxquare/p/6213307.html
Copyright © 2020-2023  润新知