题目描述:
思路分析:
方法一:
我们可以考虑使用一个基准数字1,在循环的条件下不断进行乘2运算,如果经过若干次循环存在2的某一个次幂等于n则return True否则return False
代码实现:
class Solution:
def isPowerOfTwo(self, n: int) -> bool:
k=1
while k<n:
k=k*2
return n==k
方法二:
通过位运算符实现功能,通过左移运算操作,每左移一位相当于在原来的基础上乘2.
代码实现:
class Solution:
def isPowerOfTwo(self, n: int) -> bool:
k=1
while k<n:
k=k<<1
return n==k
效率对比:
方法一
方法二