LeetCode ---- 89、格雷编码

题目链接

思路:

格雷码的生成规则 :G(i) = i ^ (i / 2)    参考链接

n位的格雷码,那么一共会有2^n个格雷码

利用上面规则,即可写出代码  

    public List<Integer> grayCode(int n) {
        List<Integer> result = new ArrayList<>();
        if (n == 0) {
            result.add(0);
            return result;
        }
        for (int i = 0; i < (1 << n); i++) {
            result.add(i ^ (i >> 1));
        }
        return  result;
    }

猜你喜欢

转载自blog.csdn.net/sinat_34679453/article/details/107189484