蓝桥杯常用算法之组合

/*
 * 对比上一篇 排列 发现其实组合算法也比较容易理解
 * 控制参数j只向前走即可
 *  
 * */ 

static char[] tag; 
 static char[] carr;
 static boolean[] vis;

 /**
 * @param args
 * @author hyman xiong
 */

 public static void main(String[] args) {
 // TODO Auto-generated method stub
    String string = "abcde"; 
    tag = string.toCharArray();//target array
    vis = new boolean[tag.length];// visit ?
    carr = new char[3];//从tag(target数组)中取 3 个

    zuhe(0, 0);
 }
 
 static void zuhe(int p,int j)
 {
  if(p==carr.length)
  {
   //find
   for(char ch:carr)
   {
    System.out.print(ch+"");
   }
   System.out.println();
  }
  else {
   for(;j<tag.length;j++)
   {
    if(vis[j]) continue;
    carr[p] = tag[j];
    vis[j] =true;
    zuhe(p+1, j);
    vis[j] = false;
   }
  }
 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值