[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
相关推荐
syagain_zsx9 小时前
算法基础篇 · 04 前缀和(C++ 题解)
c++·算法·前缀和
天真小巫9 小时前
2026.9.20牛马日记
职场和发展
青山是哪个青山10 小时前
LeetCode 123:买卖股票的最佳时机 III
算法
Zane199411 小时前
写对二分查找有多难?Java集合框架的作者也曾栽在一行mid计算上
算法
Lokey86811 小时前
transformer结构
算法
罗斯83911 小时前
EMBER恶意软件基准数据集
人工智能·算法·安全·网络安全
0+11111 小时前
算法 --二分查找
c++·算法·leetcode
圣保罗的大教堂11 小时前
leetcode 1674. 使数组互补的最少操作次数 中等
leetcode
Omics Pro11 小时前
新型条件传输模型!虚拟细胞扰动预测
数据库·人工智能·算法·机器学习·自然语言处理
黄金龙PLUS12 小时前
5个800比特大状态置换算法的设计与分析
算法·网络安全·密码学·哈希算法·同态加密