LeetCode 15 三數之和

2021-10-04 19:49:26 字數 950 閱讀 8840

給你乙個包含 n 個整數的陣列nums,判斷nums中是否存在三個元素 a, b, c,使得 a + b + c = 0 ?請你找出所有滿足條件且不重複的三元組。

注意:答案中不可以包含重複的三元組。

給定陣列 nums = [-1, 0, 1, 2, -1, -4],

滿足要求的三元組集合為:

[[-1, 0, 1],

[-1, -1, 2]

]

思想:先排序,再使用雙指標遍歷,注意去除重複的組合情況

先固定三個元素的最小的元素nums[i];

再設定兩個指標leftright,其中left指向nums[i]的後面,right則指向陣列的末尾;

class

solution

arrays.

sort

(nums)

;//排序

for(

int i=

0;i2;i++)if

(i >

0&& nums[i]

== nums[i-1]

)int left = i+1;

int right = len-1;

while

(leftwhile

(left== nums[right-1]

)++left;

--right;

}else

if(sum <0)

else

if(sum >0)

}}return ans;

}}

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...