zoukankan      html  css  js  c++  java
  • Leetcode Gray Code

    题目的意思就是将十进制转换成格雷码

    首先将二进制转换成格雷码

    根据此图可以看出二进制的第i和第i+1位异或为格雷码的第i+1位,对于给定的十进制数x,其(x>>1)相当于二进制向右移动一位

    将 x^(x>>1)刚好能按照上述方式完成异或,故结果为x的格雷码

    class Solution {
    public:
        vector<int> grayCode(int n) {
            vector<int> res;
            for(int x = 0 ; x< (1<<n);++ x) res.push_back(x^(x>>1));
            return res;
        }
    };
  • 相关阅读:
    HDU 5444 Elven Postman 二叉排序树
    HDU 5438 Ponds dfs模拟
    Gym
    markdown test
    Gym
    集训回顾
    UVALive
    UVALive
    UVALive
    codeforcres 589 J
  • 原文地址:https://www.cnblogs.com/xiongqiangcs/p/3823442.html
Copyright © 2011-2022 走看看