- 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 =
10unit.For example,
Given heights =[2,1,5,6,2,3],
return10.
- 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; } };
本文介绍了一种求解直方图中最大矩形面积的算法。给定一系列非负整数表示直方图的高度,宽度均为1,该算法通过遍历每个柱状条作为矩形底边的一部分来寻找最大的矩形面积。



被折叠的 条评论
为什么被折叠?



