zoukankan      html  css  js  c++  java
  • LeetCode Reverse Bits

    Reverse bits of a given 32 bits unsigned integer.
    For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as >00111001011110000010100101000000).
    Follow up:
    If this function is called many times, how would you optimize it?
    Related problem: Reverse Integer

    居然没有记录,不过买了本数全是位操作,真好可以看一下,先来个常规解法

    class Solution {
    public:
        uint32_t reverseBits(uint32_t n) {
            uint32_t res = 0;
            for (int i=0; i<32; i++) {
                res = (res << 1) | (n & 0x1);
                n>>=1;
            }
            return res;
        }
    };
    

    古典解法

    class Solution {
    public:
        uint32_t reverseBits(uint32_t n) {
            n = (n & 0x55555555) << 1 | (n & 0xAAAAAAAA) >> 1;
            n = (n & 0x33333333) << 2 | (n & 0xCCCCCCCC) >> 2;
            n = (n & 0x0F0F0F0F) << 4 | (n & 0xF0F0F0F0) >> 4;
            n = (n & 0x00FF00FF) << 8 | (n & 0xFF00FF00) >> 8;
            n = (n & 0x0000FFFF) << 16| (n & 0xFFFF0000) >> 16;
            return n;
        }
    };
    

    以上代码来自《算法心得》

  • 相关阅读:
    git-guide
    jenkinsfile 庖丁解牛
    pipline预发的'拉取代码'的stage
    jenkinsfile的credentialsId
    jenkins配置ssh插件
    Rancher
    福至心灵篇-python
    生成器和迭代器思维导图(待补充)
    怎么样才能使内心平静?
    Java中的语法糖
  • 原文地址:https://www.cnblogs.com/lailailai/p/4628786.html
Copyright © 2011-2022 走看看