011_盛最多水的容器
小于 1 分钟
011_盛最多水的容器中等
class Solution {
public int maxArea(int[] height) {
int left = 0;
int right = height.length - 1;
int res = Math.min(height[left] , height[right]) * (right - left);
while(left < right){
int min = Math.min(height[left], height[right]);
while(height[right] <= min && left < right){
right--;
}
while(height[left] <= min && left < right){
left++;
}
res = res > (right - left)*Math.min(height[left], height[right]) ? res : (right - left)*Math.min(height[left], height[right]);
}
return res;
}
}
创建两个 int 型数据 left,right,计算水池的面积,由于左右指针的移动会使得left到right的举例变短,若果要获得更大的水的面积,将 left 与 right 中更短的边移动,直到移动到的那条边超过 left 和 right 中的最短边。
Powered by Waline v2.15.5