思路
一重迴圈定下來乙個數之後,用兩個指標進行 夾擊 確定是否等於-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...