【二进制求反序】LeetCode初试验_Reverse Bits
来源:互联网 发布:小学生画图软件ipad 编辑:程序博客网 时间:2024/06/05 13:26
今天在网上看到有人说LeetCode很适合刷题,于是我就随手点了一道题看看。
Reverse Bits
Total Accepted: 12829 Total Submissions: 47004My SubmissionsReverse bits of a given 32 bits unsigned integer.
For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as00111001011110000010100101000000).
Follow up:
If this function is called many times, how would you optimize it?
Related problem: Reverse Integer
这是一道很普通的二进制求反序二进制的问题,脑中想到的自然还是和十进制一样取余放到新的数里去,然后乘以十循环到底。
然后在Discuss看到一个3ms的算法,对哦~毕竟是二进制,那么因材制宜采用二进制的各种运算自然会快得多!
二进制有哪些在底层来说是基础运算呢? 逻辑运算,左右移。
又因为uint32_t是一个32位的数,所以不管这数原先是多少都呆胶布~
res=(res<<1)^(n&1) 容器左移一格然后把移出来的末位放上原数n的末尾
n>>=1 然后原数的末尾就不需要咯,右移扔掉~
Code:
class Solution {public: uint32_t reverseBits(uint32_t n) { int i; uint32_t res=0; for(i=0;i<32;i++) { res=(res<<1)^(n&1); n>>=1; } return res; }};
0 0
- 【二进制求反序】LeetCode初试验_Reverse Bits
- (LeetCode)Counting Bits -- 求二进制中1的个数
- 【LeetCode】Reverse Bits 翻转二进制
- LeetCode题目_Reverse Integer
- LeetCode 7_Reverse Integer
- leetcode第一刷_Reverse Integer
- Leetcode第七题_Reverse Integer
- LeetCode之7_Reverse Integer
- leetcode第一刷_Reverse Linked List II
- LeetCode 25_Reverse Nodes in k-Group
- leetcode 190. Reverse Bits-二进制翻转|位运算
- Number of 1 Bits (求32位二进制数中1的)
- leetcode第一刷_Reverse Words in a String
- leetcode第一刷_Reverse Nodes in k-Group
- leetcode:bits:Counting Bits(338)
- LeetCode—Reverse Bits ,1 Bit和数字的二进制情况相关
- [LeetCode] Counting Bits 计算二进制表示法中1的位数
- LeetCode 338. Counting Bits(计算二进制数中1的位数)
- Nginx 作为静态文件服务器
- 编译Linux内核
- 讲故事,学(Java)设计模式—桥接模式
- struts2基本知识总结1
- java开发过程中遇到的问题
- 【二进制求反序】LeetCode初试验_Reverse Bits
- 使用taglist插件
- 【动态规划】Best Time to Buy and Sell Stock IV
- Maven3路程(三)用Maven创建第一个web项目(1)
- Oracle忘记用户名、密码
- 【c语言】判断一个字符串是不是回文字符串
- Redis的发布/订阅(pub/sub)
- jQuery中filter()和find()的区别
- 提取元素的轮廓及形状描述子