zoukankan      html  css  js  c++  java
  • 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.

    class Solution {
    public:
        vector<int> grayCode(int n) {
            unsigned int data=0;
            
            vector<int> list;
            for(int i=0;i<(1<<n);i++)
                list.push_back(0);
                
            for(int loc=0;loc<n;loc++)
            {
                int bit=0;
             
                int step=1<<loc;   
                int index=0;
                while(index<(1<<n))
                {
                    list[index]=list[index] | (bit<<loc);
                    step++;
                    if(step==(2<<loc))
                    {
                        bit=1-bit;
                        step=0;
                    }
                    index++;
                }
            }
            
            return list;
        }
    }; 
  • 相关阅读:
    火狐浏览器修改userAgent
    清除linux缓存命令
    linux主机间复制文件
    解决两台centos虚拟机Telnet服务无法联机的问题
    Install Redis on CentOS 6.4--转
    解决 ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)异常
    主机访问虚拟机中linux上的web服务
    How can I exclude directories from grep -R?
    RPM安装命令总结--转载
    centos mongodb安装及简单实例
  • 原文地址:https://www.cnblogs.com/erictanghu/p/3759550.html
Copyright © 2011-2022 走看看