目录
题目链接
题目


解题思路
该题解使用双指针法解决"盛最多水的容器"问题。初始化左右指针分别指向数组首尾,计算当前容器的面积并更新最大值。通过比较左右指针高度,移动较矮的一侧指针以寻找更大面积。时间复杂度O(n),空间复杂度O(1)。关键点在于双指针的移动策略能确保不漏掉可能的更大面积。
代码
java
class Solution {
public int maxArea(int[] height) {
int area=0;
int n=height.length;
int left=0,right=n-1;
int s=0;
while(left<right){
int val=0;
val=(right-left)*((height[left]<height[right]?height[left]:height[right]));
s=Math.max(s,val);
if(height[left]<height[right]){
left++;
}else right--;
}
return s;
}
}
总结:
该题解使用双指针法解决"盛最多水的容器"问题。初始化左右指针分别指向数组首尾,计算当前容器的面积并更新最大值。通过比较左右指针高度,移动较矮的一侧指针以寻找更大面积。时间复杂度O(n),空间复杂度O(1)。关键点在于双指针的移动策略能确保不漏掉可能的更大面积。