Chinaunix首页 | 论坛 | 博客
  • 博客访问: 255372
  • 博文数量: 170
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1709
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-06 18:01
文章分类

全部博文(170)

文章存档

2016年(11)

2015年(130)

2014年(29)

分类: Java

2015-09-19 15:40:02

//Gray Code My Submissions Question Solution 
//Total Accepted: 42115 Total Submissions: 126486 Difficulty: Medium
//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
//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.
import java.util.ArrayList;
import java.util.List;


public class GrayCode {


public static void main(String[] args) {
// TODO Auto-generated method stub


}
public List<Integer> grayCode(int n) {
   if(n==0){
    List<Integer> result=new ArrayList<>();
    result.add(0);
    return result;
   }
   List<Integer> result=new ArrayList<>(grayCode(n-1));
   int count=result.size();
   for(int i=count-1;i>=0;i--){
    result.add((int) (result.get(i)+Math.pow(2, n-1)));
   }
   return result;
}
}

阅读(247) | 评论(0) | 转发(0) |
0

上一篇:ScrambleString

下一篇:SubSetTwo

给主人留下些什么吧!~~