11.盛水最多的容器
給定 n 個非負整數 a1,a2,…,an,每個數代表座標中的乙個點 (i, ai) 。在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 (i, ai) 和 (i, 0)。找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。
說明:你不能傾斜容器,且 n 的值至少為 2。
圖中垂直線代表輸入陣列 [1,8,6,2,5,4,8,3,7]。在此情況下,容器能夠容納水(表示為藍色部分)的最大值為 49。
class
solution
}return area;
}}
15.三數之和
給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重複的三元組。
注意:答案中不可以包含重複的三元組。
例如, 給定陣列 nums =[-
1,0,
1,2,
-1,-
4],滿足要求的三元組集合為:[[
-1,0
,1],
[-1,
-1,2
]]
思路
標籤:陣列遍歷
首先對陣列進行排序,排序後固定乙個數 nums[i],再使用左右指標指向 nums[i]後面的兩端,數字分別為 nums[l] 和 nums[r],計算三個數的和 sum 判斷是否滿足為 0,滿足則新增進結果集
如果 nums[i]大於 0,則三數之和必然無法等於 0,結束迴圈
如果 nums[i]
== nums[i−1
],則說明該數字重複,會導致結果重複,所以應該跳過
當 sum ==
0 時,nums[l]
== nums[l+
1] 則會導致結果重複,應該跳過,l++
當 sum ==
0 時,nums[r]
== nums[r-
1] 則會導致結果重複,應該跳過,r--
時間複雜度:o
(n^2
),n 為陣列長度
class
solution
else
if(sum <
0) l++
;else
if(sum >
0) r--;}
}return ans;
}}
17.**號碼的字母組合
給定乙個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。
給出數字到字母的對映如下(與**按鍵相同)。注意 1 不對應任何字母。
示例:
輸入:"23"
輸出:[
"ad"
,"ae"
,"af"
,"bd"
,"be"
,"bf"
,"cd"
,"ce"
,"cf"
].
class
solution
;//列舉
public list
lettercombinations
(string digits)
char number = digits.
charat(0
);string letters = lettermap[number -
'0']
; string cur = digits.
substring(1
,digits.
length()
);list
res1 =
lettercombinations
(cur);if
(res1.
size()
==0)}
else}}
return res;
}}
熱題HOT 100 簡單題 4 6
53.最大子序和 給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。高階 如果你已經實現複雜度為 o n 的解法,嘗試使用更為精妙的分治法求解...
熱題HOT 100 簡單題10 12
141.環形鍊錶 給定乙個鍊錶,判斷鍊錶中是否有環。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環。示例 1 輸入 head 3,2,0,4 pos 1 輸出 true 解釋 鍊錶中有乙個環,其尾部連線到第二個...
LeetCode熱題 HOT 100兩數之和
開篇今天興趣來潮打算去leetcode刷刷演算法題,為面試準備,忽然看到頁面的leetcode 熱題 hot 100,然後就點進去了,然後就有了這個文章!兩數之和 給定乙個整數陣列 nums 和乙個整數目標值 target,請你在該陣列中找出 和為目標值 的那 兩個 整數,並返回它們的陣列下標。你可...