解題方案
給定n個非負整數a1,a2,…,an,每個數代表座標中的乙個點(i, ai)。在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為(i, ai)和(i, 0)。找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。
說明:你不能傾斜容器,且 n 的值至少為 2。輸入:[1,8,6,2,5,4,8,3,7]圖中垂直線代表輸入陣列 [1,8,6,2,5,4,8,3,7]。在此情況下,容器能夠容納水(表示為藍色部分)的最大值為 49。
輸出:49
陣列題,面積由兩部分決定,乙個是寬度,乙個是高度,而高度又由兩個高度的最小值決定。要求找到最大面積。
很容易想到將所有情況遍歷一邊,從前向後遍歷有: n(n
−1)/
2n(n-1)/2
n(n−1)
/2種情況,因此時間複雜度為o(n
2)o(n^2)
o(n2)。
這道題可以使用雙指標法解決,由於矩形面積由兩部分決定:最短的高度和寬度,因此在游標向內移動時,應選擇高度較低的游標進行移動,這是因為,如果較高的移動,只可能使得面積縮小(高度減小,寬度減小),然而較低的移動雖然寬度會減小,但是高度可能增加,這樣面積就可能增加。
最後加以判斷即可。
所有**都可以在我的github上找到:leetcode
LeetCode解題記錄(5)
我將慢慢開始做leetcode上的題,並做解題記錄發布在這裡。我每題會給出一到多個解法,記錄思考過程。我演算法巨爛,是想通過這種方式稍微補補,基本功和我一樣差的小夥伴可以和我一起共勉,有大神路過可以指點一二,我感激不盡。解題的最底要求是能通過leetcode的檢測,我不會喪病的為了各種提高效率在乙個...
leetcode解題記錄(二)
問題描述 編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例1 輸入 flower flow flight 輸出 fl 示例2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母 a z 思路 首先找出陣列中長度最短的字串...
LeetCode解題記錄(7) 整數反轉
解題方案 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。輸入 123 輸出 321 輸入 123 輸出 321 輸入 120 輸出 21 注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據這個假設,如果反轉後整數溢位那麼就返回...