P15三數之和

2021-10-02 05:36:26 字數 1480 閱讀 4630

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

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

例如, 給定陣列 nums =[-

1,0,

1,2,

-1,-

4],滿足要求的三元組集合為:[[

-1,0

,1],

[-1,

-1,2

]]

related topics:陣列 雙指標

/**     

* 方案一:暴力法,直接三層迴圈

* 結果會出現重複資料

*/class

solution}}

}return res;

}}

/** 

* 方案二:

* 首先對該陣列進行排序,然後進行判斷:

* 當陣列長度小於3,直接return;

* 當nums[i] > 0,則三數之和一定大於0,因為一開始已經排序了,直接break;

* */

class

solution

arrays.

sort

(nums)

;//排序

for(

int i =

0; i < len; i++)if

(i >

0&& nums[i]

== nums[i -1]

)int l = i +1;

int r = len -1;

while

(l < r)

while

(l < r && nums[r]

== nums[r-1]

)

l++;

r--;}

else

if(sum <0)

else

if(sum >0)

}}return ans;

}}

/** 

* 也是用到了雙向指標

*/class

solution

while

(l < r && nums[r]

== nums[r-1]

)

l++;

r--;}

else

if(nums[l]

+ nums[r]

< sum)

else}}

}return ans;

}}

(P15)守護程序

include include include include include include include include include define err exit m do while 0 呼叫者程序將稱為新會話期的領頭程序 呼叫者程序成為新會話期中唯一的乙個程序組的組長 新的會話期沒有...

15 三數之和

給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。例如,給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 最首先想到的是來三層...

15 三數之和

給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。有兩種寫法 第一種耗時久,但容易解讀 class solution if nums.length 3 else if ...