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


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

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

    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]){  //f是用来做边界的控制问题解决
                        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);
             
         }
         
         
    }

  • 相关阅读:
    正则表达式入门
    Tyvj 1518 CPU监控——极恶线段树
    数据结构-元组
    洛谷P3195 玩具装箱TOY
    数据结构-列表基本语法
    P2569 股票交易
    列表循环
    P3507 GRA-The Minima Game
    数据结构-集合
    洛谷P1595 信封问题
  • 原文地址:https://www.cnblogs.com/toov5/p/7488544.html
Copyright © 2020-2023  润新知