*LeetCode-Gray Code

其实不是什么backtracking 每次increment一个1 这个1的位置每层循环左移一位 内部循环记得要倒序

public class Solution {
    public List<Integer> grayCode(int n) {
        List<Integer> res = new ArrayList<Integer>();
        res.add(0);
        for ( int i = 0; i < n; i ++ ){
            int inc = 1 << i;
            for ( int j = res.size() - 1; j >= 0; j -- ){
                res.add( res.get(j) + inc );
            }
        }
        return res;
    }
}


你可能感兴趣的:(*LeetCode-Gray Code)