
暴力法
public int maxArea(int[] height) {//256ms
int maxarea = 0;
for (int i = 0; i < height.length; i++)
for (int j = i + 1; j < height.length; j++)
maxarea = Math.max(maxarea, Math.min(height[i], height[j]) * (j - i));
return maxarea;
}
双指针
public int maxArea(int[] height) {//5ms
int l = 0;
int r = height.length -1;
int area = 0;
while (l<r){
area = Math.max(area,Math.min(height[l],height[r]) * (r-l));
if (height[l]<height[r])
l++;
else
r--;
}
return area;
}
本文介绍了求解最大盛水量问题的两种算法:暴力法和双指针法。暴力法通过遍历所有可能的容器组合来寻找最大盛水量,时间复杂度较高。而双指针法则从两端开始向中间逼近,每次移动较短的边界,有效减少了计算次数,提高了算法效率。
7505

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



