num = 00000101
mask = 11111111
^ ^ overlap!
num = 00000101
mask = 11111110
^ overlap!
num = 00000101
mask = 11111100
^ overlap!
num = 00000101
mask = 11111000
clear!
class Solution {
public:
int findComplement(int num) {
unsigned mask = ~0;
while (num & mask) mask <<= 1;
return ~mask & ~num;
}
};