题解 | #盛水最多的容器#
盛水最多的容器
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;
}
}
安克创新 Anker公司福利 577人发布