美文网首页
如何判断一个数是否是2的n次方O(1)算法

如何判断一个数是否是2的n次方O(1)算法

作者: Haward_ | 来源:发表于2019-04-09 16:35 被阅读0次

题目: 如何判断一个数是否是2的n次方
思路:当一个数为2的n 次方时,整个二进制数,只有本位是1 其他位为0,如果我们给这个数减一,那么本位变为0 其他位全部变成1;我们可以通过&运算, 如果为0即为2的n次方;

class Solution:
    def is2n(self, n):
        if n == 0:
            return True
        res = n & (n-1)
        return res==0


if __name__ == "__main__":
    so = Solution()
    n = 15
    res = so.is2n(n)
    print(res)

相关文章

  • 如何判断一个数是否是2的n次方O(1)算法

    题目: 如何判断一个数是否是2的n次方思路:当一个数为2的n 次方时,整个二进制数,只有本位是1 其他位为0,如果...

  • 关于算法的时间复杂度的排序

    O(1)

  • 斐波那契

    1、O(n)的算法 2、O(2^n)的算法 3、O(1)的算法 4、O(log n)的算法 参考: https:/...

  • Sherlock and Divisors

    题目大意: 给定一个数N,求N的因子中能被2整除的个数。算法: 循环1N,找出每个因子看是否能被整除,复杂度O(N...

  • 筛选质数

    关于怎么判断一个数 n 是否是质数,最简单的方法是枚举 2 到 n−1,判断是否是 n 的约数。如果是, n 肯定...

  • 递归-汉诺塔

    问题描述 算法复杂度 2的n次方再减1n为盘子的个数 算法实现 运行结果 3个盘子 2个盘子 1个盘子 5个盘子

  • Leetcode.326.Power of Three

    题目 给定一个数,判断是否是3的n次方。不要用循环和递归。 思路 最简单容易理解的方法就是找出最大的3的n次方,然...

  • 【JS算法】简单的位运算

    先来熟悉下位运算 算法231题:给你一个整数 n,请你判断该整数是否是 2 的幂次方 普通解法 位运算解法 2的X...

  • leetcode [231] Power of Two

    题目大意: 判断一个数是不是2的幂次方 解题思路: 观察上面两个表可以得出的结论是: 当n%2==1&&n/2!=...

  • 算法时间复杂度

    一、常见算法复杂度 O(N!)、O(2N)、O(N2)、O(NlogN)、O(N)、O(logN)、O(1)......

网友评论

      本文标题:如何判断一个数是否是2的n次方O(1)算法

      本文链接:https://www.haomeiwen.com/subject/ohliiqtx.html