leetcode 15 三數之和

2021-09-02 19:12:29 字數 886 閱讀 7819

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

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

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

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

[ [-1, 0, 1],

[-1, -1, 2]

]

思路:利用滑動視窗思想,先將陣列排好序,然後選定乙個數作為 target,這樣就將問題轉換為求兩個數的和等於這個 target 的問題,然後從 target 的位置出發,用 i 和 j 指標規劃乙個 [ i , j ] 的 視窗,其中 i 是大於 target 的位置的,而 j 是小於陣列長度的位置的, 如果 nums[i] + nums[j] 的值和 target 相等,那麼加入 res,如果小於 target,則 i++,如果大於 target,則 j--。其中還要考慮到去重的問題。

**:

class solution 

//****一定要有i < j條件,否則j會取-1

while(i//***

i++;

j--;

}else if(value < (-nums[k]))

i++;

else

j--;

}//****重值處理

while(k < nums.length-1 && nums[k] == nums[k+1])

}return res;

}}

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