[leetcode] 2 的幂

给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。

如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。

示例 1:

复制代码
输入:n = 1
输出:true
解释:20 = 1

示例 2:

复制代码
输入:n = 16
输出:true
解释:24 = 16

示例 3:

复制代码
输入:n = 3
输出:false

提示:

  • -231 <= n <= 231 - 1

进阶:你能够不使用循环/递归解决此问题吗?

Python实现

这是使用n&(n-1)运算,该位运算技巧可以直接将 n二进制表示的最低位 1移除。

复制代码
class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
        return n>0 and n&(n-1)==0
相关推荐
Jasmine_llq7 分钟前
《P7516 [省选联考 2021 A/B 卷] 图函数》
算法·弗洛伊德算法·floydwarshall算法·后缀和计算
kaikaile19958 分钟前
三维CT图像重建算法
算法
她说人狗殊途10 分钟前
时间复杂度(按增长速度从低到高排序)包括以下几类,用于描述算法执行时间随输入规模 n 增长的变化趋势:
数据结构·算法·排序算法
计科土狗10 分钟前
算法基础入门第一章
c++·算法
与己斗其乐无穷11 分钟前
算法(二)滑动窗口
算法
Ghost-Face11 分钟前
恭喜自己,挑战成功!
算法
Miraitowa_cheems11 分钟前
LeetCode算法日记 - Day 102: 不相交的线
数据结构·算法·leetcode·深度优先·动态规划
ByteX13 分钟前
算法练习-成功之后不许掉队
算法
蒙奇D索大14 分钟前
【算法】 递归实战应用:从暴力迭代到快速幂的优化之路
笔记·考研·算法·改行学it
Miraitowa_cheems15 分钟前
LeetCode算法日记 - Day 101: 最长公共子序列
数据结构·算法·leetcode·深度优先·动态规划