container with most water(12.6)

題意:(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));

    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章