Skip to content

Commit 32cc7b6

Browse files
committed
Runtime 0 ms (Top 100.0%) | Memory 6.0 MB (Top 14.99%)
1 parent b9a2115 commit 32cc7b6

File tree

1 file changed

+6
-31
lines changed

1 file changed

+6
-31
lines changed
Lines changed: 6 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,10 @@
1-
// Runtime: 3 ms (Top 37.98%) | Memory: 5.9 MB (Top 76.79%)
2-
31
class Solution {
42
public:
5-
int bitwiseComplement(int n) {
6-
7-
//-------Exceptional Case---------------
8-
if(n == 0){
9-
return 1;
3+
int bitwiseComplement(int num) {
4+
//base case
5+
if(num == 0) return 1;
6+
unsigned mask = ~0;
7+
while( mask & num ) mask = mask << 1;
8+
return ~num ^ mask;
109
}
11-
12-
//-------Normal Case--------------------
13-
int testNumber = n;
14-
int rightShift = 0; // count of length on number in binary 5 == 101 => 3
15-
16-
// counting
17-
while(testNumber != 0){
18-
testNumber = testNumber >> 1;
19-
rightShift++;
20-
}
21-
22-
// generating mask
23-
int mask = 0;
24-
while(rightShift != 0){
25-
mask = mask << 1;
26-
mask = mask | 1;
27-
rightShift--;
28-
}
29-
30-
// complementing
31-
int temp = ~n;
32-
int result = temp & mask;
33-
return result;
34-
}
3510
};

0 commit comments

Comments
 (0)