3Sum
来源:互联网 发布:砧板 知乎 编辑:程序博客网 时间:2024/05/20 23:56
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.
Note:
- Elements in a triplet (a,b,c) must be in non-descending order. (ie, a ≤ b ≤ c)
- The solution set must not contain duplicate triplets.
For example, given array S = {-1 0 1 2 -1 -4}, A solution set is: (-1, 0, 1) (-1, -1, 2)左右夹逼
时间复杂度 O(n^2)
空间复杂度 O(1)
public class Solution {
public List<List<Integer>> threeSum(int[] num) {List<List<Integer>> list1 = new ArrayList<List<Integer>>(); //List is an abstract type
Arrays.sort(num);
for(int i=0;i<num.length;i++){
if(i>0 && num[i]==num[i-1]){ //How to remove duplicates
continue;
}
int left = i+1, right=num.length-1;
while(left<right){
if(right<num.length-1 && num[right]==num[right+1]){
right--;
continue;
}
if(num[i]+num[left]+num[right]==0){
List<Integer> list2 = new ArrayList<Integer>();
list2.add(num[i]);
list2.add(num[left]);
list2.add(num[right]);
list1.add(list2);
left++;
right--;
}else if(num[i]+num[left]+num[right]<0){
left++;
}else{
right--;
}
}
}
return list1;
}
}
0 0
- 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
- ios UIAlertView使用全解
- 剑指offer面试题35
- POJ1037 -----A decorative fence
- 几种软件开发模型优缺点及其适用范围
- KMP字符串模式匹配详解
- 3Sum
- Python2.7 + PyQt + Eric4搭建Python GUI可视化开发环境
- C++赋值运算符重载
- freemarker四种变量
- cas client入门之三:单点登出
- [LeetCode24]Swap Nodes in Pairs
- Activty之我见(处女帖,跪求各位大婶留下脚板印)
- JSONKit的使用方法
- python--批量创建文件夹