leetcode 三數之和

2021-10-14 16:19:25 字數 1117 閱讀 6607

題目:

給你乙個包含 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...