腾讯32-2的幂leetcode231
2的幂
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。
示例 1:
输入: 1
输出: true
解释: 20 = 1
示例 2:
输入: 16
输出: true
解释: 24 = 16
记住:
位运算,
数学上,通过 n > 0 且 n & (n - 1) == 0 即可判定是否满足
n
?
=
2
x
n ?= 2^x
n?=2x
2 x 2^x 2x | n | n-1 | n&(n-1) |
---|---|---|---|
2 0 2^0 20 | 1 | 0 | 0 |
2 1 2^1 21 | 10 | 01 | 00 |
2 2 2^2 22 | 100 | 011 | 000 |
2 4 2^4 24 | 10000 | 01111 | 00000 |
class Solution:
def isPowerOfTwo(self, n: int) -> bool:
return n > 0 and n & (n - 1) == 0