[week 6] [Leetcode] Largest Rectangle in Histogram

来源:互联网 发布:php集成包 编辑:程序博客网 时间:2024/06/01 09:53
  • Question:

 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


  • Analysis:
  • Code:
class Solution {public:    int largestRectangleArea(vector<int>& heights) {        const int n = heights.size();        int area = 0;        int h = 0;        for (int lpoint=0;lpoint<n;lpoint++)        {               h = heights[lpoint];            area = max(area,heights[lpoint]);            for (int rpoint = lpoint+1;rpoint<n;rpoint++)            {                h = min(h,heights[rpoint]);                area = max(area,h*(rpoint-lpoint+1));            }        }        return area;    }};


原创粉丝点击