3Sum
来源:互联网 发布:单片机应用技术 编辑:程序博客网 时间:2024/05/01 17:28
Question:
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.
//********** Hints ************
先给数组排序,之后跟Two Sum类似,遍历一遍数组,对每个index i, target = -num[i], 令两个指针 i+1 和 num.length-1 向中间求和
//*****************************
Solution:
public class Solution {
public ArrayList<ArrayList<Integer>> threeSum(int[] num) {
Arrays.sort(num);
ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();
if(num.length < 3){
return res;
}
for(int i = 0; i<num.length -2; i++){
if(i == 0 || num[i] > num[i-1]){
int target = -num[i];
int start = i+1;
int end = num.length - 1;
while(start < end){
if(num[start] + num[end] == target){
ArrayList<Integer> tmp = new ArrayList<Integer>();
tmp.add(num[i]);
tmp.add(num[start]);
tmp.add(num[end]);
res.add(tmp);
start += 1;
end -= 1;
while(start < end && num[start] == num[start-1]){
start++;
}
while(start < end && num[end] == num[end+1]){
end--;
}
}
else if(num[start] + num[end] > target){
end--;
}
else{
start ++;
}
}
}
}
return res;
}
}
- Two Sum && 3 Sum
- 【Leetcode】3Sum (Sum)
- 3Sum 3Sum Closest 4Sum
- 3Sum & 3Sum Closest & 4Sum
- 3sum、3Sum closet、 4sum
- 3Sum, 3Sum Closest, 4 Sum
- leetcode 2 sum 3sum 4sum
- 2Sum 3Sum 4Sum
- Leetcode 2SUM-3SUM-4SUM
- Leetcode-2sum,3sum,4sum
- leetcode 2 sum & 3 sum & 4 sum
- 3Sum
- 3SUM
- 3-sum
- 3Sum
- 3Sum
- 3Sum
- 3Sum
- CF 219D 树形dp
- [leet code] Insertion Sort List
- Two Sum
- LeetCode - Combinations
- String to Integer
- 3Sum
- Valid Parentheses
- Merge Two Sorted List
- Implement strStr()
- 安装pvfs2
- Pow(x,n)
- Lesson 2: Udacity Intro to Parallel Programming
- liuru jia ACM训练指南链接(转载自BearChild blog)
- LeetCode - Merge k Sorted Lists