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;
}
};