Middle-题目22:89. Gray Code

原创 2016年05月31日 15:45:25

题目原文:
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 [0,1,3,2]. Its gray code sequence is:

00 - 0
01 - 1
11 - 3
10 – 2
题目大意:
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码。
求n位的格雷码。
题目分析:
使用门电路中生成格雷码的公式计算:这里写图片描述
,其中Gi表示格雷码的第i位,Bi表示二进制数的第i位。(因此生成格雷码的电路是异或门。)
源码:(language:java)

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

成绩:
1ms,beats 58.59%,众数2ms,40.77%
cmershen的碎碎念:
本题的tags是BackTrack,可能是根据n-1位格雷码推n位格雷码,这也是可以的,但本题最简洁的算法应该是Bit manipulation.(by the way,简单的门能搭出计算格雷码的电路,我觉得我也能搭出来,但能实现回溯吗?)

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

相关文章推荐

LeetCode 89. Gray Code(格雷码)

原题网址:https://leetcode.com/problems/gray-code/ The gray code is a binary numeral system where two s...
  • jmspan
  • jmspan
  • 2016年05月23日 00:34
  • 443

递归算法+奇妙规律 89. Gray Code

参考分析见链接 http://blog.csdn.net/makuiyu/article/details/44926463 转载: 题目链接:Gray Code The gray code is...

LeetCode 89 Gray Code

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

LeetCode #89 - Gray Code - Medium

ProblemThe gray code is a binary numeral system where two successive values differ in only one bit.G...
  • Arcome
  • Arcome
  • 2016年12月20日 08:07
  • 141

[leetcode] 【数组】 89. Gray Code

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

89. Gray Code [leetcode]

89. Gray Code The gray code is a binary numeral system where two successive values differ in only...

89. Gray Code \ 51. N-Queens \ 52. N-Queens II

Gray Code 题目描述 解题思路 N-Queens 题目描述 代码实现89. Gray Code题目描述The gray code is a binary numeral system wher...

leetCode 89.Gray Code (格雷码) 解题思路和方法

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

<LeetCode OJ> 89. Gray Code

Total Accepted: 59678 Total Submissions: 164093 Difficulty: Medium The gray code is a binary nu...

Leetcode 89. Gray Code

89. Gray Code Total Accepted: 70114 Total Submissions: 183889 Difficulty: Medium The gray code i...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Middle-题目22:89. Gray Code
举报原因:
原因补充:

(最多只允许输入30个字)