加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

89. Gray Code

发布时间:2020-12-14 04:17:04 所属栏目:大数据 来源:网络整理
导读:The gray code is a binary numeral system where two successive values differ in only one bit. Given a non-negative integer? n ?representing the total number of bits in the code,print the sequence of gray code. A gray code sequence must begi

The gray code is a binary numeral system where two successive values differ in only one bit.

Given a non-negative integer?n?representing the total number of bits in the code,print the sequence of gray code. A gray code sequence must begin with 0.

Example 1:

Input:?2
Output:?
Explanation:
00 - 0
01 - 1
11 - 3
10 - 2

For a given?n,a gray code sequence may not be uniquely defined.
For example,[0,2,3,1] is also a valid gray code sequence.

00 - 0
10 - 2
11 - 3
01 - 1
[0,1,2]

Example 2:

Input:?0
Output:?[0]
Explanation: We define the gray code sequence to begin with 0.
?            A gray code sequence of n has size = 2n,which for n = 0 the size is 20 = 1.
?            Therefore,for n = 0 the gray code sequence is [0].

?

AC code:

class Solution {
public:
    vector<int> grayCode(int n) {
        vector<int> res;
        
        for (int i = 0; i < 1 << n; ++i) {
            res.push_back(i ^ i >> 1);
        }
        
        return res;
    }
};

Runtime:?4 ms,faster than?71.82%?of?C++?online submissions for?Gray Code.

?

there are some regular patterns:

i = 0

i^i>>1  00

i = 1

i^i>>1  01

i = 2

i^i>>1  11

i = 3

i^i>>1  10

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读