利用兩個指針,一個從開始位置向前遍歷,一個從結束位置向前遍歷java
不斷比較兩個指針對應位置的高度,將低的那個指針對應的高度換掉,並計算此時的面積,在這個計算過程當中,老是有一個最大的面積存在的spa
class Solution {
public int maxArea(int[] height) {
int start = 0;
int end = height.length-1;
int max = 0;
int temp = 0;
while(start != end){
temp = (end - start) * Math.min(height[end], height[start]);
if(temp > max){
max = temp;
}
if(height[start] > height[end]){
end--;
}else{
start++;
}
}
return max;
}
}
複製代碼