0%

LeetCode-190

题目

190. 颠倒二进制位

结果

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package main

import (
"fmt"
)

func main() {
fmt.Println(reverseBits(0b00000010100101000001111010011100))
}

func reverseBits(num uint32) (ans uint32) {
for i := 0; i < 32 && num > 0; i++ {
// 最低位:num & 1
// 最低位左移 31 - i 位:从最高位到最低位
ans |= num & 1 << (31 - i)
num >>= 1
}
return
}

复杂度

时间复杂度:O(1)

空间复杂度:O(1)