zoukankan      html  css  js  c++  java
  • 排列

      1-n的全排列

    public void permutation(int n,int[] arr,int cur){
            if(cur==n){
                System.out.println(Arrays.toString(arr));
                return;
            }
            for(int i=1;i<=n;i++){
                boolean ok=true;
                for(int j=0;j<cur;j++){
                    if(arr[j]==i) ok=false;
                }
                if(ok){
                    arr[cur]=i;
                    permutation(n,arr,cur+1);
                }
            }
        }

     可重集合的排列,

    ublic void permutation(int[] nums,int[] arr,int cur){//nums有序
            if(cur==nums.length){
                System.out.println(Arrays.toString(arr));
                return;
            }
            for(int i=0;i<nums.length;i++){
                if(i>0&&nums[i]==nums[i-1]) continue;
                int c1=0;
                int c2=0;
                for(int j=0;j<cur;j++){
                    if(arr[j]==nums[i]) c1++;
                }
                for(int j=0;j<nums.length;j++){
                    if(nums[i]==nums[j]) c2++;
                }
                
                if(c1<c2){
                    arr[cur]=nums[i];
                    permutation(nums,arr,cur+1);
                }
            }
        }

     3.不去重复元素

      ArrayList<String> res=new ArrayList<String>();
        public void swap(char[] s,int i,int j){
            char ch=s[j];
            s[j]=s[i];
            s[i]=ch;
        }
        public void helper(char[] s,int cur){
            int len=s.length;
            if(cur==len-1){
                res.add(new String(s));
                return;
            }
            for(int i=cur;i<len;i++){
                swap(s,i,cur);
                helper(s,cur+1);
                swap(s,i,cur);
            }
        }
        public ArrayList<String> getPermutation(String A) {    
            char[] s=A.toCharArray();
            Arrays.sort(s);
            helper(s,0);
            Collections.sort(res);
            Collections.reverse(res);
            return res;
        }
  • 相关阅读:
    SpringAOP里JoinPoint常用方法总结
    Hutool工具
    github配置.gitignore忽略版本文件
    IDEA集成Docker部署微服务
    mybatisplus插入报错argument type mismatch
    mysql 主从复制遇到的坑
    博客园文档树参考涉案值
    MySQL分库分表和优化
    mycat中文乱码-解决方案
    ElasticSearch&Docker&Kafka
  • 原文地址:https://www.cnblogs.com/wqkant/p/6809816.html
Copyright © 2011-2022 走看看