zoukankan      html  css  js  c++  java
  • [leetcode] Gray Code

    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)
      {
        int size = 1 << n;
        vector<int> ret(size);
    
        for(int i=0; i<size; i++)
          ret[i] = i ^ (i >> 1);
    
        return ret;
      } 
    };
  • 相关阅读:
    ulimit c unlimited
    2021.9.28 Sqoop
    2021.9.30 利用sqoop将hive数据导出到mysql
    2021.10.2 建造者模式
    111每日博客
    1029每日博客
    112每日博客
    113每日博客
    Panda 交易所视点观察!区块链金融应用迎新规,哪些版块受影响?
    c# 读取word
  • 原文地址:https://www.cnblogs.com/lxd2502/p/4487954.html
Copyright © 2011-2022 走看看