leetCode threeSum 15 三數之和

2021-10-07 15:46:10 字數 943 閱讀 9563

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

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

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

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

[[-1, 0, 1],

[-1, -1, 2]

]注意的幾個點:

1. 不可以包含重複的三元組;

2. 本題需要找到所有的陣列,不是滿足條件的某個。

通過**說一下幾點:

1.本題沒有指明需要按照原陣列的順序,所以我們先排個序;

2.通過雙指標法來計算全部等於0的值;和小於0時,左側指標加1,和大於0時,右側指標減一。

var threesum = function(nums) );

const result = ;

if(nums.length < 3)

for(let i = 0; i< nums.length - 2; i++)

let left = i + 1;

let right = nums.length - 1;

while(right > left)else if(sum < 0)else

if(i>0 && nums[i] == nums[i-1])

int left = i + 1;

int right = nums.length - 1;

while(left < right)else if(sum < 0)else

while(left < right && nums[right] == nums[right - 1])

right --;

left ++;}}

}return list;

}}

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 最首先想到的是來三層...

15 三數之和

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