Leetcode:Gray Code
2015-02-13 01:38
330 查看
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.
For example, given n = 2, return
code sequence is:
Note:
For a given n, a gray code sequence is not uniquely defined.
For example,
above definition.
For now, the judge is able to judge based on one instance of gray code sequence. Sorry about that.
给定位数的格雷码。思路:自然二进制码转换成二进制格雷码,其法则是保留自然二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,而格雷码其余各位与次高位的求法相类似。
实现代码:
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.
For example, given n = 2, return
[0,1,3,2]. Its gray
code sequence is:
00 - 0 01 - 1 11 - 3 10 - 2
Note:
For a given n, a gray code sequence is not uniquely defined.
For example,
[0,2,3,1]is also a valid gray code sequence according to the
above definition.
For now, the judge is able to judge based on one instance of gray code sequence. Sorry about that.
给定位数的格雷码。思路:自然二进制码转换成二进制格雷码,其法则是保留自然二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,而格雷码其余各位与次高位的求法相类似。
实现代码:
class Solution { public: vector<int> grayCode(int n) { vector<int> result; int nSize = 1 << n; for (int i = 0; i < nSize; ++i) { result.push_back((i>>1)^i); } return result; } };
相关文章推荐
- 【leetcode】【89】Gray Code
- leetcode:Gray Code
- leetcode Gray Code
- Leetcode-89. Gray Code
- leetcode: Gray Code
- [LeetCode]Gray Code
- Leetcode: Gray Code
- [leetcode ] gray code
- leetcode第一刷_Gray Code
- Leetcode: Gray Code
- leetCode 89.Gray Code (格雷码) 解题思路和方法
- 【LeetCode】89. Gray Code解法及注释
- 【leetcode】Gray Code
- LeetCode 89 Gray Code (Python详解及实现)
- LeetCode - Gray Code
- 【leetcode】Gray Code (middle)
- [LeetCode] Gray Code
- [C++]LeetCode: 86 Gray Code (格雷码)
- [leetcode]Gray Code
- [LeetCode]Gray Code