[陣列]Leetcode15三數之和
Leetcode15
一個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?請你找出所有滿足條件且不重複的三元組。
注意:答案中不可以包含重複的三元組。
示例:
給定陣列 nums = [-1, 0, 1, 2, -1, -4],
滿足要求的三元組集合為:
[[-1, 0, 1],[-1, -1, 2]]
class Solution {
List<List<Integer>> res=new ArrayList<>();
public List<List<Integer>> threeSum(int[] nums) {
int len=nums.length;
Arrays.sort(nums);
if(len<3) return res;
for(int i=0;i<len;i++){
if(i>0&&nums[i]==nums[i-1]){
continue;
}
helper(nums,i,0-nums[i]);
}
return res;
}
public void helper(int[] nums,int start,int target){
int low=start+1,hight=nums.length-1;
while(low<hight){
if(low>start+1&&nums[low]==nums[low-1]){
low++;
continue;
}
if(nums[low]+nums[hight]==target){
List<Integer> list=new ArrayList<>();
list.add(nums[start]);
list.add(nums[low]);
list.add(nums[hight]);
res.add(list);
low++;
}else if(nums[low]+nums[hight]>target){
hight--;
}else{
low++;
}
}
}
}
相關文章
- 演算法之陣列——三數之和演算法陣列
- 兩數之和,返回陣列下標陣列
- Leetcode[陣列] 18. 四數之和LeetCode陣列
- 兩數之和,三數之和,最接近的三數之和,四數之和
- [求解]陣列,分成倆個陣列,陣列值之和的相差最小。陣列
- 三數之和
- python實現給定一個數和陣列,求陣列中兩數之和為給定的數Python陣列
- 【簡單演算法】1.兩數之和,給定整數陣列和目標值,找出陣列中2數之和等於目標值的元素演算法陣列
- 15.三數之和
- 57. 三數之和 &&
- (三)陣列陣列
- LeetCode 15.三數之和LeetCode
- LeetCode15.三數之和LeetCode
- LeetCode15. 三數之和LeetCode
- 輸出陣列nums中兩數之和為target的對應下標陣列
- 【陣列】1550. 存在連續三個奇數的陣列(簡單)陣列
- lc907 子陣列的最小值之和陣列
- Leetcode 167:兩數之和 II - 輸入有序陣列(最詳細解決方案!!!)LeetCode陣列
- 指標-矩陣下三角元素之和指標矩陣
- 演算法題:三數之和演算法
- LeetCode - 15. 三數之和 2LeetCode
- (js)leetcode 15. 三數之和JSLeetCode
- systemtap 探祕(三)- 型別、變數和陣列型別變數陣列
- 雙指標妙解三數之和指標
- 刷題總結:使用Python-雜湊表——兩數之和、兩個陣列的交集Python陣列
- 求陣列之和,最小值,最大值,平均值陣列
- 陣列[簡單]1550. 存在連續三個奇數的陣列2020/11/14(6)陣列
- 力扣.16 最接近的三數之和力扣
- 15. 三數之和_(c語言版)C語言
- 【LeetCode(Java) - 259】較小的三數之和LeetCodeJava
- LeetCode筆記-三數之和等於0LeetCode筆記
- 將字串陣列轉換為浮點數陣列字串陣列
- 【LeetCode-陣列】陣列式整數加法LeetCode陣列
- 陣列元素的數量陣列
- 陣列中每個陣列元素出現的次數陣列
- 程式碼隨想錄演算法訓練營第七天 | 四數之和、贖金信、三數之和、四數之和2演算法
- Day 7| 454.四數相加II 、383. 贖金信 、15. 三數之和 、18. 四數之和
- 633. 平方數之和 ( 列舉 + 二分查詢 )