盛最多水的容器
2026年3月9日小于 1 分钟
盛最多水的容器
使用到的方法
Math类中的方法:
min(): 返回两个数中的较小值。
解题思路
- 使用双指针法,分别指向数组的左右两端。
- 计算当前指针所指的两个元素之间的面积,并更新最大面积。(面积公式:容器的面积由 短边高度 和 宽度 决定)
- 然后根据指针所指元素的高度,移动较短的指针,以期望找到更大的面积。
- 重复上述步骤,直到两个指针相遇
代码实现
class Solution {
public int maxArea(int[] height) {
int l = 0,r = height.length - 1;
int ans = 0;
while(l < r){
int area = Math.min(height[l],height[r]) * (r-l);
ans = Math.max(ans,area);
if(height[l] <= height[r]){
l++;
} else {
r--;
}
}
return ans;
}
}