leetcode--Gray Code

来源:互联网 发布:javascript的作用 编辑:程序博客网 时间:2024/05/19 05:02

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 - 001 - 111 - 310 - 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.

[java] view plain copy
  1. public class Solution {  
  2.     public List<Integer> grayCode(int n) {  
  3.         List<Integer> res = new ArrayList<Integer>();     
  4.         int i = 1<<n;  
  5.         int j = 0;  
  6.         while(j<i){  
  7.             res.add((j>>1)^j);  
  8.             j++;  
  9.         }  
  10.         return res;  
  11.     }  
  12.   
  13. }

原文链接http://blog.csdn.net/crazy__chen/article/details/46434367