LeetCode 231: Power of Two

这个题跟Power of Three的思路基本一模一样,解法也差不多。但是因为是2啊,毕竟是计算机的进制数,所以&,|这些位操作总能出奇迹。

思路

我们可以列几个2的次幂数就可以发现,他们的二进制数的最高位为1,其他位都是0。所以让她与比她小的一个数的数做一下位与&即有结果为0。

代码

1
2
3
bool isPowerOfTwo(int n) {
return n > 0 && !(n & (n - 1));
}
分享到 评论