盛最多水的容器

2021-10-06 07:15:11 字數 529 閱讀 2123

此題其實雙for 暴力法是很容易得出答案的

之所以寫部落格是要分析一下雙指標問題

最開始想雙指標的覺得 這題雙指標可行嗎?

答案是可行的 為什麼呢

我們把兩個指標設為 l 和r

那麼容量就是

sum = math.min(nums[l],nums[r]) *(r-l)
假設num[l] l為邊界的容器 容量最大值一定不大於 sum

如果想通了上面的思路 那麼就容易多了

因為每次只需要移動指標小的那個

我們就能拿到用所有位置當邊界的最大值

然後比較最大值就可以了

public

intmaxarea

(int

height)

else

}return count;

}

盛最多水的容器

給定 n 個非負整數 a1,a2,an,每個數代表座標中的乙個點 i,ai 畫 n 條垂直線,使得垂直線 i 的兩個端點分別為 i,ai 和 i,0 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。注意 你不能傾斜容器,n 至少是2。乍一看很簡單,巢狀迴圈遍歷就完事了 int m...

盛最多水的容器

題目描述 給定 n 個非負整數 a1,a2,an,每個數代表座標中的乙個點 i,ai 在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 i,ai 和 i,0 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水 說明 你不能傾斜容器,且 n 的值至少為 2。示例 輸入 1,8,6...

盛最多水的容器

給定 n 個非負整數 a1,a2,an,每個數代表座標中的乙個點 i,ai 在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 i,ai 和 i,0 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。說明 你不能傾斜容器,且 n 的值至少為 2。圖中垂直線代表輸入陣列 1,8,...