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

php判断给定的整数是否是2的幂_[LeetCode] 231. 2的幂

2d995ede021b4ecfbeb6c01cac063fae.png

题目链接: https://leetcode-cn.com/problems/power-of-two

难度:简单

通过率:46.6%

题目描述:

给定一个整数,编写一个函数来判断它是否是 2 的幂次方。

示例:

示例 1:

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

示例 2:

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

示例 3:

输入: 218
输出: false

思路:

思路一:一直除2,看到最后能不能被除尽

时间复杂度:

  • 递归
class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
        if n <= 0:
            return False
        if n == 1:
            return True
        if n % 2 == 0:
            return self.isPowerOfTwo(n // 2)
        return False
  • 迭代
class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
        if n == 0: return False
        while n % 2 == 0:
            n //= 2
        return n == 1

思路二:位

因为是2的幂,二进制都是10000..这样形式的,那么就有

时间复杂度:

  • 位计数
class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
        return n > 0 and bin(n).count("1") == 1
  • 位操作
class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
        return n > 0 and n & (n - 1) == 0

更多题解:

九四干:[LeetCode] 题目汇总(持续更新)​zhuanlan.zhihu.com
47643d05d0ece2f35d189f68499e57ac.png

73937ec0f39ad21d5e532f3ac10bfcf8.png

相关文章:

  • mysql的or能去重吗_海盐能去鸡皮肤吗 去鸡皮肤的方法哪些最有效你知道吗
  • uat环境是什么环境_朱家雄:什么是我们需要的幼儿园环境?
  • 卖掉前清理彻底_打通生命通道、消除安全隐患,酒仙桥街道大山子社区集中开展清理堆物堆料行动...
  • fanuc机器人与示教器配对_阳江Fanuc机器人示教器维修中心
  • 车险赔付率分析报告_对车险赔付率高的原因分析
  • 两条边延长角会有什么变化_GDamp;T 干货专题 | DTS是什么?DTS定义中的间隙测量方式详解...
  • 大数据应用项目创新大赛_全国高校大数据应用创新大赛
  • 快递信息css3手风琴代码_杭州2名快递小哥认定为“高层次人才”
  • android home键 无广播_移植FFMpeg到Android:Ubuntu(Linux) FFMpeg编译
  • colspan会影响下列宽度么_天然气价格暴涨,会影响北方冬季的供暖么?看完或有答案...
  • 主流mes厂商_国内主流MES厂商排名报告-MES系统哪家好?
  • 摄像头poe供电原理_选择POE供电交换机时,应该考虑哪些问题?终于有人说大实话了...
  • 设计几何体素描_零基础学板绘先学什么?入门建议练什么?学板绘需要学素描吗...
  • dev c++调试怎么看变量的值_「正点原子NANO STM32开发板资料连载」第十八章 USMART 调试组件...
  • pid是滞后超前校正_ICCE 经典控制理论频域分析与校正
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【面试系列】之二:关于js原型
  • 2017-09-12 前端日报
  • Debian下无root权限使用Python访问Oracle
  • echarts花样作死的坑
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Kibana配置logstash,报表一体化
  • linux安装openssl、swoole等扩展的具体步骤
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • Vue--数据传输
  • 每天10道Java面试题,跟我走,offer有!
  • 探索 JS 中的模块化
  • 新手搭建网站的主要流程
  • 原生js练习题---第五课
  • - 转 Ext2.0 form使用实例
  • C# - 为值类型重定义相等性
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (27)4.8 习题课
  • (二)fiber的基本认识
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (三)终结任务
  • (一)认识微服务
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .Net Web项目创建比较不错的参考文章
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • // an array of int
  • @SuppressWarnings注解
  • @取消转义
  • [ SNOI 2013 ] Quare
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • [20170705]lsnrctl status LISTENER_SCAN1
  • [2018][note]用于超快偏振开关和动态光束分裂的all-optical有源THz超表——
  • [383] 赎金信 js
  • [acwing周赛复盘] 第 69 场周赛20220917