Skip to content

Commit 904130c

Browse files
committed
reverse-bits
1 parent dbb2fdb commit 904130c

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

reverse-bits/taewanseoul.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/**
2+
* 190. Reverse Bits
3+
* Reverse bits of a given 32 bits unsigned integer.
4+
*
5+
* https://leetcode.com/problems/reverse-bits/description/
6+
*/
7+
8+
// O(1) time
9+
// O(1) space
10+
function reverseBits(n: number): number {
11+
const bits: number[] = [];
12+
13+
while (bits.length < 32) {
14+
bits.push(n & 1);
15+
n = n >> 1;
16+
}
17+
18+
let result = 0;
19+
let scale = 1;
20+
for (let i = bits.length - 1; i >= 0; i--) {
21+
result += bits[i] * scale;
22+
scale *= 2;
23+
}
24+
25+
return result;
26+
}

0 commit comments

Comments
 (0)