【Leecode】Leecode刷题之路第89天之格雷编码

Scroll Down

题目出处

89-格雷编码-题目出处

题目描述

89-格雷编码-题目描述

个人解法

思路:

todo

代码示例:(Java)

todo

复杂度分析

todo

官方解法

89-格雷编码-官方解法

前言

关于格雷编码的知识,读者可以查阅百度百科格雷码

89-格雷编码-格雷码-百度百科

方法1:归纳法

思路:

89-格雷编码-归纳法-思路

代码示例:(Java)

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


}

复杂度分析

89-格雷编码-归纳法-复杂度分析

方法2:公式法

思路:

89-格雷编码-公式法-思路

代码示例:(Java)

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


}

复杂度分析

89-格雷编码-公式法-复杂度分析

考察知识点

收获

1.使用markdown让图片居中

2.位运算

Gitee源码位置

89-格雷编码-源码

同名文章,已同步发表于CSDN,个人网站,公众号