LeetCode 231 [Power of Two]

原题

用 O(1) 时间检测整数 n 是否是 2 的幂次。

样例
n=4,返回 true;
n=5,返回 false.

解题思路

  • 本题考查bit操作
  • 数学问题,照例先观察前几项
1 => 1 
2 => 10
4 => 100
8 => 1000
16 => 10000
...
  • 可以发现,2的次方数与2的次方数减1的相与一定为零

完整代码

class Solution(object):
    def isPowerOfTwo(self, n):
        """
        :type n: int
        :rtype: bool
        """
        return n > 0 and n & (n - 1) == 0
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容