当前位置: 首页 > news >正文

【Leetcode】231. 2的幂

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

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

示例 1:

输入:n = 1
输出:true
解释:20 = 1

示例 2:

输入:n = 16
输出:true
解释:24 = 16

示例 3:

输入:n = 3
输出:false

提示:

-231 <= n <= 231 - 1

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

AC:

classSolution{public:boolisPowerOfTwo(intn){if(n<=0)returnfalse;// 2 的幂的二进制表示中只有一个 1,// 所以 n & (n - 1) 应该等于 0return(n&(n-1))==0;}};
  • 这是道很典型2的幂判断题型
  • 至于为何能够判断?

解释如下:

2 的幂的二进制表示里,只有一个 1

1 -> 0001
2 -> 0010
4 -> 0100
8 -> 1000

发生了什么?

n - 1会把n最高位的那个1变成0
并把该位右边的所有低位0变成1

例如

n=8(1000)n -1=7(0111)n&(n -1)=1000&0111=0000

对于任意只有一个1的数,nn-1在那个位置上一定互斥,所以 按位与为0

为什么不是其它数?

如果n不是2的幂,例如n = 6:

6 = 0110
5 = 0101
6 & 5 = 0100,不是 0

6有两个1n-1只会清掉最右边的1,剩下的高位1仍然在结果中。
∴ 这个表达式的逻辑

n > 0
n 只有一个 1 位
n & (n - 1) 结果就是 0

因此(n & (n - 1)) == 0能返回true,表示n2的幂。


附上官方题解

http://www.gsyq.cn/news/1424607.html

相关文章:

  • TranslucentTB:Windows任务栏透明化终极指南与完整解决方案
  • 西湖大学等机构联手破解AI图像生成的“翻译失真“难题
  • 保姆级教程:在Ubuntu 20.04上从源码编译运行FAST-LIO2(避坑指南)
  • 2026年成都店面设计装修品牌实测评测对比 - 优质品牌商家
  • 【Lindy自动化黄金配置清单】:12项必检参数+3类高危人工干预场景预警
  • β-PPH管与其他管道性能全对比
  • 2026年当下吉林学摄影课程哪家?深度剖析沈阳爱玲化妆摄影培训学校 - 2026年企业资讯
  • 内存计算技术:突破数据移动瓶颈的新范式
  • 别再手动调参了!用MATLAB的自动超参数优化,5分钟搞定LSBoost和Bagging回归模型
  • 2026成都长途搬家品牌选择:核心技术维度实测推荐 - 优质品牌商家
  • 告别论文焦虑:6款2026年优质AI论文写作软件深度横评
  • Redis在线学习终极指南:3分钟零配置掌握数据库核心操作
  • 手把手教你用Python处理Weibo虚假新闻检测数据集(附完整代码与图片爬虫)
  • 2026 年口碑佳的基层治理数智平台服务商在哪?
  • ThinkBook 14换装Ubuntu:双系统/单系统安装与驱动避坑全记录(附MT7921网卡解决方案)
  • GPT-5.5:面向下一代智能应用的技术展望
  • 避坑指南:处理汽油需求数据时,FGLS估计结果反而变差?聊聊自相关校正的陷阱
  • 避坑指南:RNA-seq做PCA分析时,为什么你的样本分不开?从数据预处理到结果解读
  • 功率线与信号线共模电感的核心区别
  • 井下做业实景透明.智能预警透明化三维立体重构AI预判安全治理
  • 告别ifconfig:SUSE 15 SP5最小化安装后的网络配置与基础软件包选择实战
  • macOS微信防撤回终极方案:WeChatIntercept技术解析与部署指南
  • 避开这些坑!Windows 10/11系统下MIL安装与GigE Vision驱动选择全攻略
  • Windows7虚拟机装不上VMware Tools?别急,一个SHA2补丁就能搞定(附KB4474419下载安装保姆级教程)
  • 别再纠结选Lasso还是Ridge了:用Python手把手教你调Elastic Net的λ和ρ参数
  • 五一数学建模B题复盘:用Python搞定快递需求预测与成本优化(附完整代码)
  • 为什么你的游戏手柄需要ViGEmBus:终极Windows控制器兼容解决方案
  • 用CTGAN搞定表格数据生成:从原理到实战,手把手教你生成高质量合成数据
  • 自媒体算法获流逻辑:通过受众定位与内容迭代,沉淀精准垂直流量
  • C51开发中NULL指针比较问题与内存管理技巧