題目:
給你乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?請你找出所有和為 0 且不重複的三元組。
注意:答案中不可以包含重複的三元組。
示例:
1、輸入:nums = [-1,0,1,2,-1,-4] 輸出:[[-1,-1,2],[-1,0,1]]
2、輸入:nums = 輸出:
3、輸入:nums = [0] 輸出:
方案一:暴力解法(超時)
class solution
sort(nums.begin(), nums.end());
int len = nums.size();
mapidx_map;
for (int i = 0; i < len - 2; i++)
for (int j = i+1; j < len - 1; j++)
for (int k = j+1; k < len; k++) );
break;}}
} }
return res;}};
時間複雜度空間複雜度
方案二:雙指標法
class solution
sort(nums.begin(), nums.end());
int len = nums.size();
for (int i = 0; i < len - 2; i++)
int j = i + 1;
int k = len - 1;
while(j < k) );
do while(j < len && nums[j] == nums[j-1]);
do while(k > 0 && nums[k] == nums[k+1]);
} else if (nums[j] + nums[k] + nums[i] > 0) else if (nums[j] + nums[k] + nums[i] < 0) }}
return res;}};
時間複雜度空間複雜度 leetcode 三數之和
給定乙個包含 n 個整數的陣列nums,判斷nums中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。例如,給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 因為這次是要求輸出對應的三...
LeetCode 三數之和
題目描述 給定乙個包含 n 個整數的陣列nums,判斷nums中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。例如,給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 題目分析 有序陣...
Leetcode 三數之和
解決方案一 class solution else if nums j nums k target else while i 1 1 i return lllist 解決方案2 class solution 如果有3個0,就直接作為乙個解 if zerosize 3 res.add arrays.a...