Brute Force
class Solution {
public:
int maxArea(vector<int>& height) {
int max=0;
int hei=0;
int area=0;
for(int i=0;i<height.size();i++)
for(int j=i+1;j<height.size();j++)
{
hei=height[j]<height[i]?height[j]:height[i];
area=(j-i)*hei;
if(max<area)
max=area;
}
return max;
}
};
Sliding Window
class Solution {
public:
int maxArea(vector<int>& height) {
int max_area=0;
int area=0;
int left=0;
int right=height.size()-1;
for(;left!=right;)
{
area=(right-left)*(height[left]<height[right]?height[left]:height[right]);
if(max_area<area)
max_area=area;
if(height[left]>height[right])
right--;
else
left++;
}
return max_area;
}
};
最大面积直方图算法
本文探讨了两种求解最大面积直方图问题的算法:暴力解法与滑动窗口法。通过对比,展示了滑动窗口算法在效率上的显著优势。文章详细解析了算法实现过程,包括关键代码片段。
704

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



