int maxArea(vector<int>& height) {
int i=0,j=height.size()-1;
int ans=0;
while(i<j){
int mins=min(height[i],height[j]);
ans=max(ans,(j-i)*mins);
while(height[i]<=mins && i<j)
i++;
while(height[j]<=mins && i<j)
j--;
}
return ans;
}
本文介绍了一种求解最大面积直方图的高效算法,通过双指针技巧,在O(n)的时间复杂度内找到由直方图条形围成的最大矩形面积。算法巧妙利用了比较高度和移动指针的策略,避免了重复计算。
701

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



