84. 柱状图中最大的矩形
时间:2023-02-01 10:30:00
- 柱状图中最大的矩形
给定 n 非负整数用于表示柱状图中各柱的高度。每根柱子相邻,宽度为 1 。
在柱状图中,可以勾勒出矩形的最大面积。
示例 1:
输入:heights = [2,1,5,6,2,3]
输出:10
说明:图中红色区域最大矩形,面积为 10
示例 2:
输入: heights = [2,4]
输出: 4
提示:
1 <= heights.length <=105
0 <= heights[i] <= 104
暴力解法通俗易懂,但有几个例子超过了时间限制
class Solution {
public: int largestRectangleArea(vector<int>& heights) {
int result=0; for(int mid=0;mid<heights.size();mid ) {
int left=mid; int right=mid; while(left-1>=0&&heights[left-1]>=heights[mid]) {
left--; } while(right 1<heights.size()&&heights[right 1]>=heights[mid]) {
right ; } result=max((right-left 1)*heights[mid],result); } return reslt;
}
};