三数之和
2015-10-24 09:47
399 查看
中等 三数之和
查看运行结果
19%通过
给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。
您在真实的面试中是否遇到过这个题?
Yes
样例
如S = {-1 0 1 2 -1 -4},
你需要返回的三元组集合的是:
(-1, 0, 1)
(-1, -1, 2)
注意
在三元组(a, b, c),要求a <= b <= c。
结果不能包含重复的三元组。
public class Solution {
/**
* @param numbers : Give an array numbers of n integer
* @return : Find all unique triplets in the array which gives the sum of zero.
*/
public static ArrayList<ArrayList<Integer>> threeSum(int[] numbers) {
ArrayList<ArrayList<Integer>> arr = new ArrayList<ArrayList<Integer>>();
//ArrayList<Integer> ar = new ArrayList<Integer>();
int len =numbers.length;
Arrays.sort(numbers);
if(len<3)
return null;
for(int i=0;i<len-2;i++)
{
for(int j=i+1;j<len-1;j++)
{
for(int k=j+1;k<len;k++)
{
if(numbers[i]+numbers[j]+numbers[k]==0)
{
ArrayList<Integer> ar = new ArrayList<Integer>();
ar.add(numbers[i]);
ar.add(numbers[j]);
ar.add(numbers[k]);
arr.add(ar);
// System.out.println("cun chu+"+i+" "+j+" "+k);
}
else continue;
// System.out.println("------"+arr+"-------");
}
}
}
int i = 0;
while(i<arr.size()-1)
{
int j = i+1;
while(j<arr.size())
{
if(arr.get(i).equals(arr.get(j)))
arr.remove(j);
else j++;
}
i++;
}
return arr;
}
}
相关文章推荐
- asp.net mvc3.0安装失败如何解决
- iscsi 应用
- Struts框架02-执行流程
- Lua 错误处理方法
- (总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解
- 学习Open GL在VS2013编译过程中遇到的问题
- VC++ WINDOWS自定义消息范围
- PHP 性能分析(一): XHProf & XHGui 介绍
- 如何自建FTP站点
- 如何用Timer作为变量为FC/FB传递参数?
- oracle修改表结构
- 分组取最新一条
- 武汉大学GNSS中心给IGS提供的数据产品下载地址,包括精密GPS轨道,钟差,EOP,以及实时轨道和钟差
- 使用Spark读写CSV格式文件
- windows常用命令
- 我认为的好游戏
- 多任务调试讨论
- 升级win10之后出现开机慢黑屏时间长怎么解决?
- 创建隐藏文件出现异常的解决
- eclipse开发php全过程的搭建带debug的配置