給你乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?請你找出所有滿足條件且不重複的三元組。
注意:答案中不可以包含重複的三元組。
示例:
給定陣列 nums =[-
1,0,
1,2,
-1,-
4],滿足要求的三元組集合為:[[
-1,0
,1],
[-1,
-1,2
]]
/**
* @author ffzs
* @describe
* 一正兩負, 一負兩正
* @date 2020/6/12
*/public
class
solution
else}if
(zero>=3)
if(nums.length <
3|| max==
0|| min ==0)
if(min*
2+ max >
0) max =-2
*min;
else
if(max*
2+ min <
0) min =-2
*max;
int[
] map =
newint
[max-min+1]
;int
ps =
newint
[plus]
;int
ms =
newint
[minus]
; plus =0;
minus =0;
for(
int num : nums)}}
arrays.
sort
(ps,
0,plus)
; arrays.
sort
(ms,
0,minus)
;int start=0;
for(
int i = minus-
1; i >=0;
--i)
else
if(map[sum - min]
>
0) res.
add(arrays.
aslist
(m, sum, p));
}else
if(sum < m)
break
;// 控制邊界 避免重複}}
LeetCode No 15 三數之和
求陣列中三數之和為零的所有不重複解。解題思想 1.陣列非null且陣列的長度大於等於3 2.對陣列進行排序後進行第三步的處理 3.遍歷有序陣列 class solution quicksort nums,0,nums.length 1 for int i 0 i nums.length i int ...
leetcode之15三數之和Golang
題目的要求有兩個,首先是三個數的和為0,其次是這種和為0的三元組不能重複。當給定乙個陣列,我們求滿足和為0的三元組的時候核心思想使用的是暴力破解,也就是三重迴圈,遍歷三次陣列,但是在這裡我們給出如下優化 首先將陣列按照從小到大的順序排序 設定三個指標index,分別為i,j,k,他們分別代表陣列中滿...
15 三數之和
給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。例如,給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 最首先想到的是來三層...