/**
* 所有组合
* @author Q.Yuan
*
*/
public class Combination1 {
/**
* 求a中count个数的组合
* @param a 存放组合的数
* @param restCount 当前还需多少个数构成一个组合
* @param count 在a中挑选出count个数
* @param b 存放当前组合
* @param pos 指向a中的元素,
*/
public void combination(int []a,int restCount,int count,int[] b,int pos){
if(restCount <= 0 || count > a.length){
return;
}
for(int i = pos;i >= restCount - 1;i-- ){
b[restCount - 1] = a[i];
if(restCount - 1 == 0){
for(int j:b){
System.out.print(j);
}
System.out.println();
}
combination(a, restCount-1, count, b, i-1);
}
}
public static void main(String[] args) {
Combination1 c = new Combination1();
int[] a = {1,2,3,4};
//挑选出任意两个数的组合
final int count = 3;
int[] b = new int[count];
c.combination(a, count, count, b, a.length - 1);
}
}
求数组中任意个数的组合
最新推荐文章于 2021-08-17 23:19:44 发布