【LeetCode每日刷题】一行代码实现《2的幂》

2023-11-03

一、题目

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

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

输入

输入一个整数

输出

输出True或者False

二、例子

示例1:
输入:

8

输出:

True

示例2
输入:

7

输出:

False

三、方法一

解析

如果n=2x (n是自然数)那么一定满足以下条件:

1.恒有 n & (n - 1) == 0:

  • 当n符合条件时,也就是当为复数时n的二进制开头为1,并且其余为0
  • 当n符合条件时,n-1的二进制开头为0,并且其余都为1

2.一定满足 n > 0

因此,通过 n > 0 且 n & (n - 1) == 0 即可判定是否满足 n = 2x

2X n n-1 n & (n - 1)
20 0001 0000 (0001) & (0000) == 0
21 0010 0001 (0010) & (0001) == 0
22 1000 0011 (0100) & (0011) == 0
23 1000 0011 (1000) & (0111) == 0

代码

class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
        return n > 0 and n & (n - 1) == 0

作者:jyd
链接:https://leetcode.cn/problems/power-of-two/solution/power-of-two-er-jin-zhi-ji-jian-by-jyd/
来源:力扣(LeetCode)

四、方法二

解析

计算n的二进制的’1’的个数:
只有一个1说明是二的幂级数
例如:
0b10000为二的幂级数
0b10001``0b10011等都不可能是二的幂级数
:bin() 返回一个整数 int 或者长整数 long int 的二进制表示。

代码

class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
        return bin(n).count('1') == 1 if n > 0 else False

作者:JonnyHuang
链接:https://leetcode.cn/problems/power-of-two/solution/python3-yi-xing-dai-ma-ji-bai-99-by-jonn-0me7/
来源:力扣(LeetCode)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【LeetCode每日刷题】一行代码实现《2的幂》 的相关文章

随机推荐

  • 在完美数联的面试经历

    在完美数联的面试经历 大三上学期结束的寒假我在boss上投简历 得到完美数联的面试机会 面试之前啥也没准备 就兴冲冲的去了 然后很惨烈 一共三轮面试 前两轮是技术面试 第三轮是HR面试 第一轮是笔试 笔试大概20个人在一间会议室里面 每个人
  • GoLang学习计划

    我准备学习GoLang 是有点现实所迫 因为Java太难找工作了 我在BOSS直聘等网站刷了很久 一直没有满意的公司 哈哈 但是GoLang的岗位是非常多的 全是好企业 于是就下定决心 转战GoLang 努力学习 在学习之前 制订一个学习计
  • 病毒侵袭持续中 【HDU - 3065】【AC自动机】

    题目链接 就是求的是每个病毒出现的次数 可以重叠 嗯 最后别忘了释放内存 不然听说会MLE 但是我比较规矩 不会遇到这种现象的 MLE了一次 就记得要释放内存了 是一道AC自动机的模板题 include
  • CVE-2023-21839远程代码执行漏洞

    一 环境搭建 使用vulhub快速搭建环境 进入weblogic CVE 2023 210839目录下 执行命令 docker compose up d 部署完成后直接访问7001端口即可 http 192 168 5 183 7001 c
  • 教大家如何识别ChatGPT3.5和ChatGPT4.0

    教大家如何识别ChatGPT3 5和ChatGPT4 0 为什么写这篇文章 是因为目前市面上的镜像站很多接入的都是GPT3 5 但是冒充GPT4 0进行高价售卖 很多人说识别很简单 直接提问就行了 但是你不知道的是网站的建设者是可以提前设定
  • 免费的ai绘图工具+初级教程

    ChatGPT云炬学长 关注 由于我们还有很多小伙伴资金匮乏 没有体验到Midjourney 这样的绘图工具 尽管现在AI生成工具已经遍地开花 也几乎是0代码操作 但对于小白来说还是有许多门槛阻碍了我们完美体验AI生成的魅力 那么 今天我给
  • Crest Ocean System

    最新版本支持Unity3D 2019 4 8或以上 https github com crest ocean crest
  • 华为eNSP:OSPF DR和DBR选举实验

    OSPF DR和DBR选举 简介 OSPF协议 拓扑图 实验步骤 现象 理解现象 测试 R1 R2 R3 配置命令 R1上配置命令如下 R2上配置命令如下 R3上配置命令如下 文字介绍 简介 OSPF协议 定位 开放式最短路径优先 Open
  • linux-系统硬件信息查看方法

    系统硬件信息查看方法 CPU 1 利用文件进行查看 cat proc cpuinfo model name Intel R Core TM i5 8400 CPU 2 80GHz CPU品牌型号 physical id 0 表示CPU颗数
  • mysql练习-数据查询之连接查询

    连接查询 若在一个查询请求中 涉及到多个表中的数据 则需要进行连接查询 按连接方式分 内连接 默认连接类型 INNER JOIN 外连接 自连接 交叉连接 内连接 1 等值连接 连接运算符为 例 查询每个学生的基本信息及其选课情况 SELE
  • android的动态tab,怎么在Android中利用view实现一个Tab按钮动画效果

    怎么在Android中利用view实现一个Tab按钮动画效果 发布时间 2021 01 25 15 39 10 来源 亿速云 阅读 164 作者 Leah 这篇文章将为大家详细讲解有关怎么在Android中利用view实现一个Tab按钮动画
  • Backtrader获得当前持仓详情——持仓数量与持仓的名称

    Backtrader通过Position得到持仓的情况 Position官方文档 https www backtrader com docu position 在策略中 使用self broker positions获取全部的仓位情况 包括
  • 完美解决移动端滚屏问题

    背景 移动端开发有弹出框时 下面页面还是可以滚动 本身也不是问题 但是有时候需要弹框出现 底部禁止滚动 如果需要 以下代码可以帮你实现效果 在需要弹窗的代码里 调用stopBodyScroll true 在关闭弹窗代码里 调用stopBod
  • macbook卸载软件时,显示软件已锁定解决办法

    macbook卸载软件时 显示软件已锁定解决办法 1 点开启动台终端 2 输入 bin ls dleo 你想要卸载的软件路径 可以直接从应用程序里面拖进来 输完后点回车 你可以看到 drwxr xr x 3 root admin 99 12
  • OpenGL3D图形绘制/纹理映射

    1 3D图形绘制 3D图形也是由2D的面片组合而成 一个需要注意的问题是所有的面片绘制要么是逆时针要么是顺时针 因此每三个点确定一个三角形或者每四个点确定一个四边形 再有余下的点时 按新的形状处理 以下以一个旋转的金字塔和立方体为例 int
  • 手把手教python发送邮件

    使用python内置模块 smtplib和email进行邮件发送 其中smtplib模块负责发送邮件 而email模块负责构造邮件内容 一 基本用法介绍 1 smtplib模块 1 引入smtplib模块 import smtplib 2
  • OpenStack之仪表盘服务(Dashboard)

    一 Dashboard的基本 1 概念 OpenStack云计算平台可以通过命令行管理工具使用 或者其他应用通过应用程序接口被其他程序调用 但是都较为麻烦 不够直观 那么Dashboard随机应运而生了 其本质是一个web前端控制台 主要功
  • 【Vue3】跨域问题 [The value of the ‘Access-Control-Allow-Origin‘ header in the response must not be the..]

    场景 vue 项目中 axios 请求数据的时候请求失败 出现跨域问题 报错信息 The value of the Access Control Allow Origin header in the response must not be
  • Maven报错无法解析插件

    某天本人创建好一个Maven项目写导入依赖的时候给我跳出一个错误 说一些Maven插件无法解析 虽说这是个小问题 但这个问题直接卡了一个小时的说 具体出错效果可以参考下图 注意哦 我这是在没网的情况下 有网的话maven会直接给你在中央仓库
  • 【LeetCode每日刷题】一行代码实现《2的幂》

    一 题目 给你一个整数 n 请你判断该整数是否是 2 的幂次方 如果是 返回 true 否则 返回 false 如果存在一个整数 x 使得 n 2x 则认为 n 是 2 的幂次方 输入 输入一个整数 输出 输出True或者False 二 例