2數之和 3數之和問題

2021-10-08 19:53:56 字數 679 閱讀 3148

給定陣列a,與target,求2/3 數和為taget的元素。

2數之和:

left=0,right=n-1,雙指標聯動:sumtarget時,right–;sum==target時,left++,right–。

3數之和:

還是雙指標聯動。比如遍歷到a[i],令temp=target-a[i],left=i+1,right=n-1,求和為temp的2數和,轉換為2數和問題。

2數之和:

用乙個set儲存a[i]的值。遍歷到a[i+1]時,判斷set中是否存在target-a[i+1],有的話則找到了一組解,然後刪除set中的target-a[i+1] (防止復用,如[1,2,2],target=3)。

2數之和:(求的是2元素的下標)

用乙個map儲存target-a[i]——i。遍歷到a[i+1]時,判斷set中是否存在a[i+1],有的話,map.get(a[i+1])與 i+1就是一組解,然後刪除map中的a[i+1]。

3數之和:

暴力破解:

3重迴圈。

2重迴圈+set:

把陣列中的元素儲存到set中。用2層迴圈,判斷target-a[i]-a[j]是否在set中。

兩數之和 三數之和 四數之和

兩數之和意思就是 給你乙個陣列,從中找出兩個數字,讓他們的和等於乙個具體的target。找到所有這樣的兩個數。並且這兩個數字不能完全一樣。n數之和的意思是 給你乙個陣列,從中找出n個數字,讓他們的和等於乙個具體的target。找到所有這樣的n個數。並且這n個數字不能完全一樣。最基礎的,也是最關鍵的就...

leetcode 2數 3數 4數之和

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。分析 演算法class solution else return result 給定乙個包含 n ...

演算法 兩數之和,三數之和,四數之和

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