1318. Minimum Flips to Make a OR b Equal to c
Last updated
Was this helpful?
Last updated
Was this helpful?
Given 3 positives numbers a
, b
and c
. Return the minimum flips required in some bits of a
and b
to make ( a
OR b
== c
). (bitwise OR operation).
Flip operation consists of change any single bit 1 to 0 or change the bit 0 to 1 in their binary representation.
Example 1:
Example 2:
Example 3:
Constraints:
1 <= a <= 10^9
1 <= b <= 10^9
1 <= c <= 10^9
Bit Manipulation
Check the bits one by one (via (x>>i)&1
), and:
if c[i] == 1
and a[i] == b[i] == 0
, then increase the counter by 1;
if c[i] == 0
and any of a[i] == 1
or b[i] == 1
will let the counter to increment itself by 1.
Time complexity: , no greater than 32 times;
Space complexity: