码迷,mamicode.com
首页 > 其他好文 > 详细

[Leetcode] 3Sum

时间:2015-08-12 21:29:00      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:

问题非常清楚,这里需要注意的是:我们不能使用剪枝策略,而是应该遍历所有的没有重复元素的三元组。

 1 public class Solution {
 2     public List<List<Integer>> threeSum(int[] nums) {
 3         Arrays.sort(nums);
 4         boolean flag=false;
 5         List<List<Integer> > res=new LinkedList<List<Integer> >();
 6         for(int i=0;i<nums.length;i++){
 7             if(flag) break;
 8             int num1=nums[i];
 9             if(i>0){
10                 if(num1==nums[i-1]){
11                     continue;
12                 }
13             }
14             for(int j=i+1;j<nums.length;j++){
15                 if(flag) break;
16                 int num2=nums[j];
17                 if(j>i+1){
18                     if(num2==nums[j-1]){
19                         continue;
20                     }
21                 }
22                 for(int k=j+1;k<nums.length;k++){
23                     int num3=nums[k];
24                     if(k>j+1){
25                         if(num3==nums[k-1]){
26                             continue;
27                         }
28                     }
29                     int sum = num1 + num2 + num3;
30                     /*
31                     the pruning method is wrong, such as -2,-1,0,1,2,3
32                     -2+2+3>0,how ever -1+0+1 is missed!!
33                     if(sum>0){
34                         flag=true;
35                         break;
36                     }
37                     */
38                     if(sum==0){
39                         List<Integer> listone=new ArrayList<Integer>();
40                         listone.add(num1);
41                         listone.add(num2);
42                         listone.add(num3);
43                         res.add(listone);
44                     }
45                 }
46             }
47         }
48         return res;
49     }
50 }

上面的注释处举例说明了为什么不能根据sum的大小进行剪枝的原因。

 

[Leetcode] 3Sum

标签:

原文地址:http://www.cnblogs.com/deepblueme/p/4725459.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!