leetcode 476 Number Complement C++

来源:互联网 发布:图哈切夫斯基 知乎 编辑:程序博客网 时间:2024/05/29 14:04

这道题就是靠位操作,按理说只要返回原来的反就可以了,但是前边的0要过滤掉,所以,要想办法屏蔽前边的0,。然后后边用全部为1的掩码与一下原来的数的反即可。

int findComplement(int num) {        unsigned int mask = ~0;        while(num&mask) mask <<= 1;        return ~mask & ~num;    }

我参考了高票答案,确实牛逼啊。

0 0