題目描述:
給你乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?請你找出所有滿足條件且不重複的三元組。
注意:答案中不可以包含重複的三元組。
解題思路:
為防止有重複三元組的情況,首先把陣列排序。對於找三元組,可以使用暴力求解的方法,但如果對執行時間有限制的話, 會超時。本文採用固定乙個數,另外兩個數的求解用雙指標的方法。
class
solution
int left=i+1;
int right=len-1;
int target=
0-cur;
//vectorans;
while
(left
if(nums[left]
+nums[right]
>target)
else
if(nums[left]
+nums[right]
else
output.
push_back
(vector<
int>);
// output.push_back(ans);
// ans.clear();
left++
; right--;}
}}return output;}}
;
對於遮蔽掉的部分,是因為超時。。。雖然思路都一樣,怎麼寫**又是一回事。。。寫不好就超時,唉。
【英雄主義】
力扣15 三數之和
給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。例如,給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 題解 這題wa了好多...
力扣 15 三數之和
給你乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 請你找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。示例 給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 思路 排序 雙指...
力扣OJ題 三數之和
給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 對於這個問題,我用的是se...