BiruLyu
8/4/2017 - 4:39 AM

476. Number Complement(#).java

    public int findComplement(int num) 
    {
        int i = 0;
        int j = 0;
        
        while (i < num)
        {
            i += Math.pow(2, j);
            j++;
        }
        
        return i - num;
    }
public class Solution {
    public int findComplement(int num) {
        return ~num & ((Integer.highestOneBit(num) << 1) - 1);
    }
}
class Solution {
public:
    int findComplement(int num) {
        unsigned mask = ~0;
        while (num & mask) mask <<= 1;
        return ~mask & ~num;
    }
};
public class Solution {
    public int findComplement(int num) {
        int i=31;
        while(i>=0&&(((1<<i)&num)==0))i--;
        return ((1<<(i+1))-1)&~num;
    }
}
public class Solution {
    public int findComplement(int num) {
        int res = 0;
        int cnt = 0;
        while (num != 0) {
            int temp = ((num & 1) ^ 1) << cnt;
            res |= temp;
            num >>= 1;
            cnt++;
        }
        return res;
    }
}