此題其實雙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,...