11. Container With Most Water

題目
解析:

把數組下標作為橫坐標點,該點上的高度即為數組該位置的數值。要求根據兩點和其高度圍成的容器的最大容水量(容水量肯定根據短的那條邊來計算)

思路:

從左右兩邊向中間靠攏,每一步計算當前的矩形面積(以兩點間距為長,以較矮數值為高),保留最大矩形面積即為最大容水量。

算法:
class Solution {
    public int maxArea(int[] height) {
        int maxArea = 0;
        int left =0; //左邊的邊
        int right = height.length-1;//右邊的邊
        while(left<right){
            int S = (Math.min(height[left],height[right]))*(right-left);//求出矩形的面積(長為兩點間距,高為最短邊的長度。)
            maxArea = maxArea>=S?maxArea:S;//最大面積
            if(height[left]<height[right]){
                left++;
            }else{
                right--;
            }
            
        }
        return maxArea;
    }
}

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容