描述
給定一個(gè)數(shù)組height,長(zhǎng)度為n,每個(gè)數(shù)代表坐標(biāo)軸中的一個(gè)點(diǎn)的高度,height[i]是在第i點(diǎn)的高度慢蜓,請(qǐng)問,從中選2個(gè)高度與x軸組成的容器最多能容納多少水
1.你不能傾斜容器
2.當(dāng)n小于2時(shí)郭膛,視為不能形成容器晨抡,請(qǐng)返回0
3.數(shù)據(jù)保證能容納最多的水不會(huì)超過整形范圍,即不會(huì)超過231-1
image.png
image.png
image.png
解題思路:雙指針则剃,先從左右邊界算面積耘柱,然后確定是否是最大面積,每次對(duì)比完會(huì)去舍棄最短的邊
import java.util.*;
public class Solution {
/**
* 代碼中的類名棍现、方法名调煎、參數(shù)名已經(jīng)指定,請(qǐng)勿修改己肮,直接返回方法規(guī)定的值即可
*
*
* @param height int整型一維數(shù)組
* @return int整型
*/
public int maxArea (int[] height) {
// write code here
if(height.length<2){
return 0;
}
int left = 0;
int right = height.length - 1;
int maxArea = 0;
while(left < right){
int area = Math.min(height[left], height[right]) *(right - left);
maxArea = Math.max(maxArea,area);
if(height[left]<height[right]){
left ++;
}else{
right -- ;
}
}
return maxArea;
}
}