[leetcode] 190. Reverse Bits
来源:互联网 发布:linux ping 编辑:程序博客网 时间:2024/04/30 09:43
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?
解法一:
自己看吧,傻白甜做法。。。
class Solution {public: uint32_t reverseBits(uint32_t n) { uint32_t res=0; vector<uint32_t> values(32,0); bit32_value(values); int i = 0; while(n){ res += (n%2)*values[i++]; n = n/2; } return res; } void bit32_value(vector<uint32_t> &values){ for(int i= 0; i<32; ++i) values[i] = pow(2,31-i); }};
解法二:
一遇到bit,就应该想到bit operation。n右移,res左移。如果n当前位为1(用n&1判断), res对应位也该为1。
class Solution {public: uint32_t reverseBits(uint32_t n) { uint32_t res = 0; for(int i=0; i<32; ++i){ if (n&1==1) res = (res<<1) + 1; else res = res<<1; n = n >> 1; } return res; }};
0 0
- 【LeetCode】190.Reverse bits
- LeetCode 190. Reverse Bits
- Leetcode 190. Reverse Bits
- 190. Reverse Bits LeetCode
- LeetCode *** 190. Reverse Bits
- LeetCode 190. Reverse Bits
- Leetcode-190. Reverse Bits
- Leetcode 190. Reverse Bits
- LeetCode-190.Reverse Bits
- [leetcode] 190. Reverse Bits
- Leetcode 190. Reverse Bits
- [Leetcode]190. Reverse Bits
- LeetCode 190. Reverse Bits
- [leetcode] 190. Reverse Bits
- leetcode 190. Reverse Bits
- [LeetCode] 190. Reverse Bits
- leetcode 190. Reverse Bits
- LeetCode 190. Reverse Bits
- 回首往事----那年的自己
- Sprite和ImageView区别
- 人脸检测 coords 到屏幕 coords
- apk文件反编译
- Mac OS X 使用gdb
- [leetcode] 190. Reverse Bits
- jsp获取当前最新浏览器
- 原型模式深入--使用序列化机制实现对象的深克隆
- ios常见错误日志
- 应用再签名
- Padding 与Margin
- Android Looper机制简介
- js刷新整个页面包括引入进来的jsp
- DELPHI 指针使用