🌕🌕 11. 盛最多水的容器
2022年6月20日
- algorithm
🌕🌕 11. 盛最多水的容器
难度: 🌕🌕
问题描述
解法
class Solution {
public int maxArea(int[] height) {
// 思路:
// 双指针
int len = height.length;
int left = 0;
int right = len - 1;
int res = 0;
while(left < right) {
res = Math.max(res, getArea(height, left, right));
// 每次移动一侧,短板的一侧
if(height[left] <= height[right]) {
left ++;
} else {
right --;
}
}
return res;
}
private int getArea(int[] height, int left, int right) {
int min = Math.min(height[left], height[right]);
int area = (right - left) * min;
// System.out.println(height[left] + " " + height[right] + " " + area);
return area;
}
}