zoukankan      html  css  js  c++  java
  • leetcode--Gray Code

    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.

    public class Solution {
        /**We start from 00...0 and 000...1. Changing i-th bit for each for them is same as to 
    	 * add pow(2, i) to them. 	 * 
    	 * @param n  --Integer, the length of the binary string
    	 * @return List<Integer> --all possible 
    	 * @author Averill Zheng
    	 * @version 2014-06-05
    	 * @since JDK 1.7
    	 */
    	public List<Integer> grayCode(int n) {
    		List<Integer> result = new ArrayList<Integer>();
    		result.add(0);
    		if(n > 0){
    			result.add(1);
    			int length = 2;
    			for(int i = 1; i < n; ++i){
    				for(int j = length - 1; j > -1; --j)
    					result.add(result.get(j) + (int)Math.pow(2, i));
    				length *= 2;
    			}
    		}
    		return result;
        }
    }
    

      

  • 相关阅读:
    十万个为什么
    安装VmwareTools遇到的问题
    CentOS7没有ifconfig命令怎么办
    ftp/ http/ https/ tcp的关系
    C/S和B/S架构
    Nginx 安装以及验证教程
    osi七层模型
    在linux上安装tenginx
    Awvs、Snort的下载安装
    Laravel——DI(依赖注入)
  • 原文地址:https://www.cnblogs.com/averillzheng/p/3773800.html
Copyright © 2011-2022 走看看