public class _11盛最多水的容器_hot_again {
public int maxArea(int[] height) {
// todo 1. 不需要特殊处理
int max = 0;
int left = 0;
int right = height.length - 1;
// todo 2. 当left < right
while (left < right) {
// todo 3. 看左边和右边哪个高度大,如果左边,那就是从当前的容量和右边往左格的容量的最大值(这里height[left ++]表示先算面积,然后left++),
// 如果是右边大,那就是当前容量和左边往右一个的容量的最大值
max = height[left] < height[right] ?
Math.max(max, (right - left) * height[left++]) : Math.max(max, (right - left) * height[right--]);
}
return max;
}
}
双指针算法:盛最多水的容器
最新推荐文章于 2024-09-11 00:16:09 发布