zoukankan      html  css  js  c++  java
  • 15. 3Sum

        /*
         * 15. 3Sum
         * 2016-4-15 by Mingyang
         * 这里我开始犯的错误在于忘了在三个相加等于0的时候应该start++并且end--
         * 另外一个改进就是刚开始用HashSet来做,那样的话就浪费了很多时间
         * 这个地方采用去掉重复的做法更好一点
         */
         public static List<List<Integer>> threeSum(int[] nums) {
                List<List<Integer>> res=new ArrayList<List<Integer>>();
                int len=nums.length;
                Arrays.sort(nums);
                if(nums==null||len<3)
                   return res;
                   for(int i=0;i<len;i++){
                      if (i == 0 || (i > 0 && nums[i] != nums[i-1])) {
                      //这个if在于去掉第一个数的重复的地方,不能跟前面的一个相等
                       int start=i+1;
                       int end=len-1;
                       while(start<end){
                           List<Integer> temp=new ArrayList<Integer>();
                           if(nums[start]+nums[end]<-nums[i]){
                               start++;
                           }else if(nums[start]+nums[end]>-nums[i]){
                               end--;
                           }else{
                               temp.add(nums[i]);
                               temp.add(nums[start]);
                               temp.add(nums[end]);
                               res.add(temp);
                               while (start < end && nums[start] == nums[start+1]) start++;
                               //这里在于去掉第二个数重复的地方,只要跟后面的相等就跳过
                               while (start < end && nums[end] == nums[end-1]) end--;
                               //这里就是第三个重复的地方,只要跟前面的相等就跳过
                               start++;
                               end--;
                           }
                       }
                      }
                   }               
                   return res;
            }
  • 相关阅读:
    [原] jQuery EasyUI 1.3.0 Demo合集、离线API、动态换肤
    软件版本解释
    HTML 服务器控件
    HTML 服务器控件
    软件版本解释
    软件版本解释
    软件项目版本号的命名规则及格式介绍
    HTML 服务器控件
    软件版本解释
    软件版本解释
  • 原文地址:https://www.cnblogs.com/zmyvszk/p/5397442.html
Copyright © 2011-2022 走看看