题解 | #盛水最多的容器#
盛水最多的容器
https://www.nowcoder.com/practice/3d8d6a8e516e4633a2244d2934e5aa47
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param height int整型一维数组 * @return int整型 */ public int maxArea (int[] height) { // 判断失败条件 if(height.length < 2){ return 0; } // 双指针+贪心:从两头开始,每次选最短边舍去 int left = 0; int right = height.length - 1; // 遍历获得最优解 int max = 0; while(left != right){ max = max > Math.min(height[left],height[right])*(right-left) ? max : Math.min(height[left],height[right])*(right-left); if(height[left] > height[right]){ right--; }else{ left++; } } return max; } }