【LeetCode从零单排】No15 3Sum
2015-07-27 17:20
387 查看
称号
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)
代码
public class Solution { public List<List<Integer>> threeSum(int[] num) { Arrays.sort(num); int a,b,c; HashSet<List<Integer>> hs=new HashSet(); for(int i=0;i<=num.length-3;i++){ a=num[i]; for(int m=i+1,n=num.length-1; m<n;){ b=num[m]; c=num ; if(-a==(b+c)){ List<Integer> ls=new ArrayList<Integer>(); ls.add(a); ls.add(b); ls.add(c); hs.add(ls); n--; m++; } else if(-a>(b+c)){ m++; } else{ n--; } } } List<List<Integer>> result=new ArrayList(hs); return result; } }
代码下载:https://github.com/jimenbian/GarvinLeetCode
/********************************
* 本文来自博客 “李博Garvin“
* 转载请标明出处:http://blog.csdn.net/buptgshengod
******************************************/
相关文章推荐
- 多个AsynceTask无法同时运行的现象分析
- 身为一个程序媛的深刻自我检讨
- Xcode SVN "The file can not be opened"
- Django实例--英文、数字与中文之间增加空格
- linux 系统创建软连接
- 观察者模式与事件监听机制
- GitHub 使用教程图文详解
- Delphi静态加载DLL和动态加载DLL示例
- App中显示html网页
- android 获取短信 通讯录 电话记录
- 二分图----最大匹配,最小点覆盖,最大点独立集
- Ajax跨域请求webservice
- UVA12563 Jin Ge Jin Qu hao(DP, 背包+技巧)
- Android 软件开发之如何使用Eclipse Debug调试程序详解
- poj3463Sightseeing(最短路条数+次短路条数)
- Network
- phpMyadmin 修改上传文件大小限制
- Android—开发自学历程(3)-多线程
- 学与思
- monkey