Minimum Flips to Make a OR b Equal to c LeetCode solution in C++

1
class Solution {
2
public:
3
int minFlips(int a, int b, int c) {
4
int changeBits = 0;
5

6
for (int i = 0; i < 32; i++) {
7
int lastBitA = 0;
8
int lastBitB = 0;
9
int lastBitC = 0;
10
if (((a >> i) & 1) == 1) {
11
lastBitA = 1;
12
}
13
if (((b >> i) & 1) == 1) {
14
lastBitB = 1;
15
}
16
if (((c >> i) & 1) == 1) {
17
lastBitC = 1;
18
}
19
if (lastBitC == 1) {
20
if (lastBitA == 0 & lastBitB == 0) {
21
changeBits++;
22
}
23
} else {
24
if (lastBitA == 1 || lastBitB == 1) {
25
if (lastBitA == 1) {
26
changeBits++;
27
}
28
if (lastBitB == 1) {
29
changeBits++;
30
}
31
}
32
}
33
}
34
return changeBits;
35
}
36
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0