zoukankan      html  css  js  c++  java
  • Java递归实现全排列改进(二)---利用ArrayList实现去重

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;

    public class Test{
     private static String[] s = new String[]{"a","b","a"};
     private static int l = s.length;
     private static List<String> list = new ArrayList<String>();
     public static void main(String[] args) {
      List<String> source = Arrays.asList(s);
      List<String> target = new ArrayList<String>();
      sort(source,target);
     }

     private static void sort(List<String> source, List<String> target) {
      if(target.size() == l){
       if(!list.contains(target.toString())){
        list.add(target.toString());
        for(int i=0;i<target.size();i++){
         System.out.print(target.get(i));
        }
        System.out.println();
       }
      }
      for(int i=0;i<source.size();i++){
       List<String> targetList = new ArrayList<String>(target);
       targetList.add(source.get(i));
       List<String> resourceList = new ArrayList<String>(source);
       resourceList.remove(i);
       sort(resourceList,targetList);
      }
     }
    }

  • 相关阅读:
    二叉树
    队列和栈
    时间复杂度和空间复杂度
    二分查找法
    排序算法值归并排序
    排序算法之选择排序类
    5.7.1.3 Global 对象的属性
    5.7.1.2 eval() 方法
    5.7.1.1 单体内置对象
    5.6.3.8 fromCharCode()方法
  • 原文地址:https://www.cnblogs.com/iamconan/p/7383612.html
Copyright © 2011-2022 走看看