码迷,mamicode.com
首页 > 编程语言 > 详细

算法总结之 不重复打印排序数组中相加和胃给定值的所有三元数组

时间:2017-09-07 11:58:07      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:算法   unique   return   分享   style   string   ==   不重复   nbsp   

 

这个问题跟上一个 大同小异,如何不重复打印呢? 

 首先保证选定三元数组中第一个值不重复,剩下的就跟前一个题目一样了。

 

package TT;

public class Test69 {

     public static void printUniqueTired(int[] arr, int k){
         
           if(arr==null || arr.length<3){
               return;
           }     
           for(int i =0; i<arr.length-2; i++){
               if(i==0 || arr[i] != arr[i-1]){
                   printRest(arr, i, i+1, arr.length-1, k-arr[i]);
               }
           }
         
     }
    
     public static void printRest(int[] arr, int f, int l, int r, int k){
         while(l<r){
             if(arr[l]+arr[r]<k){
                 l++;
             }else if(arr[l]+arr[r]>k) {
                 r--;
            }else{
                if(l==f+1 || arr[l-1] != arr[l]){
                    System.out.println(arr[f]+","+arr[l]+","+arr[r]);
                }
                l++;
                r--;
            }
         }
     }
    
    
     public  static void main(String[] args){
         
         int[] arr = new int[10];
            arr[0] = -8;
            arr[1] = -4;
            arr[2] = -3;
            arr[3] = 0;
            arr[4] = 1;
            arr[5] = 2;
            arr[6] = 4;
            arr[7] = 5;
            arr[8] = 8;
            arr[9] = 9;
            
            int k  = 10;
            printUniqueTired(arr, k);
         
     }
     
     
}

技术分享

 

算法总结之 不重复打印排序数组中相加和胃给定值的所有三元数组

标签:算法   unique   return   分享   style   string   ==   不重复   nbsp   

原文地址:http://www.cnblogs.com/toov5/p/7488544.html

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