2017.10.20
N层递归,其实也就是每一次递归都可以出来N-1的结果。
public class Solution {
/*
* @param n: An integer
* @return: An array storing 1 to the largest number with n digits
*/
public ArrayList<Integer> numbersByRecursion(int n) {
// write your code here
ArrayList<Integer> res = new ArrayList<>();
if(n == 0){
return res;
}
if(n == 1){
for(int i = 1 ; i < 10; i++){
res.add(i);
}
return res;
}
ArrayList<Integer> list = numbersByRecursion(n - 1);
int add = (int)Math.pow(10,n-1);
list.add(add);
res.addAll(list);
for(int j = 1; j <= 9; j++){
for(int i : list){
res.add(add*j + i);
}
}
res.remove(res.size()-1);
return res;
}
};
本文介绍了一种使用Java实现的N层递归算法,该算法可以生成从1到最大n位数的所有整数。通过递归调用自身并逐步构建结果列表,实现了对任意位数数字的有效生成。
2949

被折叠的 条评论
为什么被折叠?



