最近在看一些面试题目,看到有一道从m个数中取出n个数的题目,从网上看到一篇很好的算法解析,留作传送门。
private static IntegerM =5;
private static IntegerN =3;
private static Integer[]a = {1,2,3,4};
//用于存储下标
private static Integer[]b =new Integer[N];
public static void main(String[] args) {
needArr(M,N);
}
private static void needArr(Integer m, Integer n) {
int i;
int j;
for (i = n; i <= m; i++) {
b[n -1] = i -1;
if (n >1)
//核心思想,从m-1个数中取出n-1个数
needArr(i -1, n -1);
else {
//打印输出
for (j =0; j
System.out.print(a[b[j]] +"\t");
}
System.out.println();
}
}
}
拾人牙慧,附上原链接
https://blog.csdn.net/denygod/article/details/51150166
