熱題HOT 100 中等題 4 6

2021-10-01 19:33:57 字數 2163 閱讀 5173

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,請你在該陣列中找出 和為目標值 的那 兩個 整數,並返回它們的陣列下標。你可...