題意:(i,ai)二維座標上的一組數組。給出這麼一個數組,計算出任意兩個數據能夠組成的最大的面積。
思路:短板原理。維護兩個指針,一前一後,計算面積。
代碼:
package com.ContainerWithMostWater;
public class CalWater {
public int calWater(int[] heights) {
int low = 0 ;
int high = heights.length -1;
int area = 0;
int maxarea = 0;
while (low < high) {
area = Math.min(heights[high], heights[low]) * (high - low);
maxarea = Math.max(area, maxarea);
if(heights[low] < heights[high]) low++;
else
high --;
}
return maxarea;
}
public static void main(String[] args) {
int[] heights = {2,4,1,3,5};
System.out.println(new CalWater().calWater(heights));
}
}