File tree 1 file changed +9
-7
lines changed
scripts/algorithms/C/Complement of Base 10 Integer
1 file changed +9
-7
lines changed Original file line number Diff line number Diff line change
1
+ // Runtime: 3 ms (Top 37.98%) | Memory: 5.9 MB (Top 76.79%)
2
+
1
3
class Solution {
2
4
public:
3
5
int bitwiseComplement (int n) {
4
-
6
+
5
7
// -------Exceptional Case---------------
6
8
if (n == 0 ){
7
9
return 1 ;
8
10
}
9
-
11
+
10
12
// -------Normal Case--------------------
11
13
int testNumber = n;
12
14
int rightShift = 0 ; // count of length on number in binary 5 == 101 => 3
13
-
15
+
14
16
// counting
15
17
while (testNumber != 0 ){
16
18
testNumber = testNumber >> 1 ;
17
19
rightShift++;
18
20
}
19
-
21
+
20
22
// generating mask
21
23
int mask = 0 ;
22
24
while (rightShift != 0 ){
23
25
mask = mask << 1 ;
24
26
mask = mask | 1 ;
25
- rightShift--;
27
+ rightShift--;
26
28
}
27
-
29
+
28
30
// complementing
29
31
int temp = ~n;
30
32
int result = temp & mask;
31
33
return result;
32
34
}
33
- };
35
+ };
You can’t perform that action at this time.
0 commit comments