Gray Code

public class Solution {
    public ArrayList<Integer> grayCode(int n) {
        if(n==0){
            ArrayList<Integer> res = new ArrayList<Integer>();
            res.add(0);
            return res;
        }
        ArrayList<Integer> res =  grayCode(n-1);
        int tmp = 1<< (n-1);
        int size = res.size(); // 注意这个size必须要计算,不能直接用n
        for(int i=size-1;i>=0;i--){
            res.add(res.get(i)+tmp);
        }
        return res;
    }
}

 

posted @ 2015-05-22 04:18  世界到处都是小星星  阅读(100)  评论(0编辑  收藏  举报