zoukankan      html  css  js  c++  java
  • Leetcode 190. Reverse Bits

    190. Reverse Bits

    • Total Accepted: 71291
    • Total Submissions: 242226
    • Difficulty: Easy

    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?

    思路:二进制数反转。

    代码:

    方法一:

     1 class Solution {
     2 public:
     3     uint32_t reverseBits(uint32_t n) {
     4         n = (n >> 16) | (n << 16);
     5         n = ((n & 0xff00ff00) >> 8) | ((n & 0x00ff00ff) << 8);
     6         n = ((n & 0xf0f0f0f0) >> 4) | ((n & 0x0f0f0f0f) << 4);
     7         n = ((n & 0xcccccccc) >> 2) | ((n & 0x33333333) << 2);
     8         n = ((n & 0xaaaaaaaa) >> 1) | ((n & 0x55555555) << 1);
     9         return n;
    10     }
    11 };


     

    方法二:

     1 class Solution {
     2 public:
     3     uint32_t reverseBits(uint32_t n) {
     4         int i;
     5         uint32_t res=0;
     6         for(i=0;i<32;i++){
     7             res<<=1;
     8             res|=n&1;
     9             n>>=1;
    10         }
    11         return res;
    12     }
    13 };
  • 相关阅读:
    LeetCode 234. 回文链表
    LeetCode 237. 删除链表中的节点
    LeetCode 20. 有效的括号( 括号配对 )
    堆栈操作合法性
    堆排序
    最大堆
    快速排序
    Bzoj1497 [NOI2006]最大获利
    Bzoj1001 [BeiJing2006]狼抓兔子
    Bzoj2716 [Violet 3]天使玩偶
  • 原文地址:https://www.cnblogs.com/Deribs4/p/5721344.html
Copyright © 2011-2022 走看看