LeetCode 【190. Reverse Bits】
2024-10-18 18:13:14
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?
思路
基本思路即分别提取出当前最高位和最低位的信息,进行交换即可,然后最高位置--,最低位位置++,直到相遇;32位数,所以0-15和16-31分别进行操作。这边我先判断最高位,如果为1,则判断最低位,如果也为1,不进行操作,如果为0,则最低为变成1,这边用到了位移,然后最高位做减法,则变为0。如果最高位为0,同理,做相反的操作即可。
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
int cur;
for(int i = 31 ; i >= 16;i--){
if(n&(1<<i)){
cur = n&1<<(31-i);
if(cur == 0){
n -= 1<<i;
n += 1<<(31-i);
} }
else{
cur = n&1<<(31-i);
if(cur != 0){
n += 1<<i;
n -=1<<(31-i);
}
}
}
return n;
}
};
最新文章
- VS配置路径和宏
- 如何通过js跨域调用ASP.NET Web API (请问如何实现在javascript中通过http get的方式跨域调用ASP.NET Web API?)
- Win32编程:窗口类样式+窗口外观样式+窗口显示样式
- nc 反弹链接
- java 复习002
- Delphi文件映射
- python select epoll poll的解析
- Cloudera Manager(CDH5)内部结构、功能包括配置文件、目录位置等
- python语法_文件操作
- jmeter的新增函数说明
- cds view 创建和调用
- Spring+SpringMVC+mybatis整合以及注解的使用(三)
- JAVA生成六位随机数
- topcoder srm 435 div1
- Vue下拉刷新组件
- java去除字符串后面的\0
- node学习笔记1——配置node环境变量及执行node文件
- Duilib Edit编辑框禁止输入中文的方法
- 问题集录--从初级java程序员到架构师,从小工到专家
- RabbitMQ--学习资源汇