leetcode 190. Reverse Bits-二进制翻转|位运算
来源:互联网 发布:软件乱码怎么恢复 编辑:程序博客网 时间:2024/06/05 11:39
原题链接:190. Reverse Bits
【补充】
【思路】
我们首先要注意 int 在内存中以二进制形式存储,占据32位。我们用一个 int 型整数 ans 来记录结果,我们采用移位操作,原因有两点:1. 注意到移位操作比乘2、除2操作效率更高,2. 移位操作很好地绕开了整型运算的溢出以及符号问题。在每次循环中:ans 每次左移一位,当 n 的最低位为1时,ans 的最低位就变为1,n 每次右移一位。总共进行32次循环:
public int reverseBits(int n) { int ans = 0; for (int i = 0; i < 32; i++) { ans <<= 1; if ((n & 1) == 1) ans++; n >>= 1; } return ans; }600 / 600 test cases passed. Runtime: 2 ms Your runtime beats 44.10% of javasubmissions.
【补充】
上面的解法是每次只需移动1位,这种解法是每第 i 次循环移动 i 位:
public int reverseBits(int n) { int ans = 0; for (int i = 0; i < 32; i++) ans |= ((n >> i) & 1) << (31 - i); return ans; }600 / 600 test cases passed. Runtime: 2 ms Your runtime beats 44.10% of javasubmissions.
1 0
- leetcode 190. Reverse Bits-二进制翻转|位运算
- 【LeetCode】Reverse Bits 翻转二进制
- Leetcode#190. Reverse Bits (反向位&位运算)
- LeetCode 190 Reverse Bits (位运算 推荐)
- leetcode-190 reverse bits 位运算
- LeetCode 190. Reverse Bits(翻转比特)
- 位操作 leetcode-190. Reverse Bits
- (*leetcode_位运算)Reverse Bits
- [理解leetcode解法]190. Reverse Bits 数字翻转
- [LeetCode]--190. Reverse Bits(不是很懂的位运算)
- 【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
- springcloud(第六篇)springcloud ribbon
- caffe 提取可视化特征遇到keyerror(即用matlab显示提取特征)
- Python学习笔记:字典(dict)有关内容
- SQL标准DDL DML语言相关知识
- ID卡卡号格式输出说明
- leetcode 190. Reverse Bits-二进制翻转|位运算
- net 面试题
- hadoop 2.7.2 (hadoop2.x)使用ant制作eclipse插件hadoop-eclipse-plugin-2.7.2.jar
- 大学如何学习
- ArrayList的contains方法和HasMap的containsKey效率差十倍
- Android通用流行框架大全
- 线程同步和互斥机制的区别
- 数据解析第三方类报错的解决办法
- 百度地图API接口 地图标注 地址经纬度解析