342. 4的幂
考点
n & (n - 1)
技巧- 掩码技巧
题解
1 | class Solution { |
时间复杂度:\(O\left( 1 \right)\)
空间复杂度:\(O\left( 1 \right)\)
思路
4的幂,实际上就是2的幂次的平方;故而肯定大于零且只存在一个1比特位,满足这两个条件后继续找规律:
4的零次幂为0001
4的一次幂为0100
4的二次幂为0001 0000
4的三次幂为0100 0000
组合在一起就是0101 0101
,十六进制表达即为55
故而制作掩码0x55555555
与原数做与运算,不为0即为4的幂次