leetcode 題目小結 n數之和

2021-10-23 13:31:26 字數 830 閱讀 5488

1. 2數之和

無序陣列,找和為target的2個數字,返回下標。

解法:hash表記錄之前遇到的數字,表中不存在互補的則繼續向後找。

2. 2數之和-有序陣列

有序陣列,找和為target的2個數字。

解法:頭尾雙指標

3. 在bst上的2數之和

資料用bst形式儲存。

解法1:bst中序遍歷輸出為有序陣列,做法轉為2。

解法2:hash表記錄已遍歷內容,做法類似1。

解法3:bst上的遞迴,看作從中間向兩端的雙指標。

4. 2數之和小於target

找出和小於target的2個數中的最大一對。

解法:排序後雙指標

5. 2數之和的資料結構

構造乙個class實現:插入新數字,查詢是否存在和為k的一對數。

解法1:hash表儲存資料,查詢方式類似1。

解法2:維護有序陣列,查詢方式類似2。

6. 3數之和為0

有重複的有序陣列,取3個數之和為0。

解法:固定乙個數,另外2個數用2的雙指標查詢。期間有剪枝的方法。

7. 最接近的3數之和

找出最接近目標值的3數之和。

解法:固定乙個數,另外兩個數雙指標查詢,類似6。

8. 4數之和

找出和為target的4個數組合。

解法:排序,類似3數之和的做法,固定2個數,找2個數。注意處理重複元素。

9. 和為target的子陣列

陣列中找出和為target的子串行數量,陣列亂序,有正負。

解法:字首和,若sum-字首和=target,那麼說明當前位置到字首末尾之間,是所求子陣列。

leetcode鍊錶題目之2 兩數相加

題目描述 思路 對於鍊錶問題,根據以往的經驗一般我們都會新建乙個dummy node,原因是如果在原煉表上進行操作,dummy連上原鍊錶的頭結點,這樣的話就算頭結點變動了,我們可以通過dummy next獲得新鍊錶的頭結點。如果需要返回乙個新鍊錶,根據該啞結點,我們只需在求出新鍊錶的值後逐個新建結點...

leetcode題目 演算法 兩數相加

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...

leetcode題目 1 兩數之和

題目 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1...