[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
相关推荐
无敌最俊朗@20 小时前
力扣hot100 - 合并两个有序链表21
算法·leetcode·链表
墨染点香20 小时前
LeetCode 刷题【168. Excel 表列名称】
算法·leetcode·职场和发展
hans汉斯20 小时前
基于改进YOLOv11n的无人机红外目标检测算法
大数据·数据库·人工智能·算法·yolo·目标检测·无人机
Swift社区20 小时前
LeetCode 431 - 将 N 叉树编码成二叉树
算法·leetcode·职场和发展
子豪-中国机器人21 小时前
1030-csp 2019 入门级第一轮
算法
关注我立刻回关21 小时前
洛谷平台
算法
Cx330❀21 小时前
C++ map 全面解析:从基础用法到实战技巧
开发语言·c++·算法
CS_浮鱼1 天前
【Linux】线程
linux·c++·算法
AndrewHZ1 天前
【图像处理基石】如何入门图像配准算法?
图像处理·opencv·算法·计算机视觉·cv·图像配准·特征描述子
BanyeBirth1 天前
C++窗口问题
开发语言·c++·算法