231.2的幂

231. 2 的幂

方法一:位运算

思想:根据题目,相当于n的二进制中只有一个1,且n为正数时,符合条件

class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
        return n > 0 and n & (n -1) == 0

方法二:位运算(技巧)

思想:利用n & (-n) == n时,n中只有一个1这个特性

class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
        return n >0 and n & (-n) == n  #利用n与-n相“与”为n,n中有1个1这个特性

方法三:

思想:利用有符号数,最高位为2 ** 30,若n为2 ** 30 的约数,则n符合条件

class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
        big = 2 ** 30
        return n > 0 and big % n == 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值