Print Numbers by Recursion

来源:互联网 发布:Windows mr 编辑:程序博客网 时间:2024/06/18 00:44

Print Numbers by Recursion

Print numbers from 1 to the largest number with N digits by recursion.
 Notice

It's pretty easy to do recursion like:

recursion(i) {    if i > largest number:        return    results.add(i)    recursion(i + 1)}

however this cost a lot of recursion memory as the recursion depth maybe very large. Can you do it in another way to recursive with at most N depth?

Given N = 1, return [1,2,3,4,5,6,7,8,9].

Given N = 2, return [1,2,3,4,5,6,7,8,9,10,11,12,...,99].

非递归方法 也还可以

/** * Created by jason on 2016/3/6. */class Solution68 {    public List<Integer> numbersByRecursion(int n) {        int N=1;        for (int i=1; i<=n; i++) {            N = N*10;        }        N = N-1;        List<Integer> result = new ArrayList<Integer>();        for (int i=1; i<=N; i++) {            result.add(i);        }        return result;    }}


0 0
原创粉丝点击