Leetcode15 三數之和

2021-10-04 04:41:19 字數 1603 閱讀 2112

思路

一重迴圈定下來乙個數之後,用兩個指標進行 夾擊 確定是否等於-nums[i]。題目難點我認為是在於不重複。

會有重複**

class

solution

//排序之後從負數到正數

//首先確定乙個數,然後兩個指標,j,k,k+j應該等於-(a)

int target;

int j,k;

for(

int i=

0;i< nums.

size()

;i++

)

target=

-nums[i]

; j=i+1;

k=nums.

size()

-1;while

(j; res.

push_back

(temp)

;//重複直接跳過

while

(j==nums[j+1]

)while

(j==nums[k-1]

) j++

; k--;}

else

if(nums[j]

+nums[k]

else}}

return res;}}

;

ac**

class

solution

//排序之後從負數到正數

//首先確定乙個數,然後兩個指標,j,k,k+j應該等於-(a)

int target;

int j,k;

for(

int i=

0;i< nums.

size()

;i++

)//去重複!!!!!

if(i >

0&& nums[i]

== nums[i-1]

)

target=

-nums[i]

; j=i+1;

k=nums.

size()

-1;while

(j; res.

push_back

(temp)

;//重複直接跳過

while

(j==nums[j+1]

)while

(j==nums[k-1]

) j++

; k--;}

else

if(nums[j]

+nums[k]

else}}

return res;}}

;

總結

經過看題解之後進行改正。總共有兩種重複,乙個是在確定第乙個數字nums[i]時候可能產生的重複,乙個是在確定j,k時候可能會產生的重複,有了這個思路就比較明確了。

LeetCode 15 三數之和

15.給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組 方法一,個人解法正確,但是效率太低,時間複雜度o n 3 時間超時,無法提交至leetcode public s...

leetcode 15 三數之和

給定乙個包含 n 個整數的陣列nums,判斷nums中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。例如,給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 class solutio...

leetcode15 三數之和

給定乙個包含 n 個整數的陣列nums,判斷nums中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。例如,給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 先找兩數之和,然後再用un...