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

LeetCode|Day22|231. 2 的幂|Python刷题笔记

LeetCode|Day22|231. 2 的幂|Python刷题笔记

🗓️ 本文属于【LeetCode 简单题百日计划】系列
👉 点击查看系列总目录 >>


📌 题目简介

题号:231. 2 的幂
难度:简单
题目链接:点击跳转


🧾 题目描述(简要)

给定一个整数 n,判断它是否是 2 的幂
你必须使用 仅用位运算的解法

示例:

输入:n = 16
输出:true输入:n = 18
输出:false

💡 解法:位运算 n & (n - 1)

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

🧠 我的理解

  • 2 的幂 在二进制中只有一个 1,例如:8 = 1000
  • n & (n - 1) 会将最右边的 1 变成 0
  • 所以如果结果为 0,说明 n 是 2 的幂;
  • 时间复杂度 O(1),空间复杂度 O(1)。

📌 基础语法复习:

  • & 是按位与运算符;
  • (n & (n - 1)) == 0 是判断 2 的幂的经典写法;
  • 注意添加 n > 0 条件,防止负数和 0。

📌 返回总目录:点我回目录

http://www.lryc.cn/news/596415.html

相关文章:

  • windows下nvm的安装及使用
  • 融云“通信+AI”解决方案三大场景实例
  • 使用mybatis实现模糊查询和精准查询切换的功能
  • GraphRAG的部署和生成检索过程体验
  • 小白成长之路-部署Zabbix7
  • 使用react编写一个简单的井字棋游戏
  • 17.VRRP技术
  • 接口自动化测试种涉及到接口依赖怎么办?
  • 微调大语言模型(LLM)有多难?
  • Google Gemini 体验
  • 深入解析Hadoop中的推测执行:原理、算法与策略
  • kafka查看消息的具体内容 kafka-dump-log.sh
  • SDC命令详解:使用set_min_library命令进行约束
  • Unity笔记——事件中心
  • HTB赛季8靶场 - Mirage
  • 风险识别清单:构建动态化的风险管理体系
  • Java函数式编程深度解析:从基础到高阶应用
  • 技能系统详解(4)——运动表现
  • 哔哩哔哩视觉算法面试30问全景精解
  • 钢铁逆行者:Deepoc具身智能如何重塑消防机器人的“火场直觉”
  • 【中文翻译】SmolVLA:面向低成本高效机器人的视觉-语言-动作模型
  • Vue 3 响应式系统中的 effectScope、watchEffect、effect 和 watch 详解
  • 如何将iPad中的视频传输到电脑(6种简单方法)
  • 单片机学习笔记.单总线one-wire协议(这里以普中开发板DS18B20为例)
  • rabbitmq 03
  • uniapp 报错 Not found ... at view.umd.min.js:1的问题
  • LWIP学习记录2——MAC内核
  • Linux系统安装Bash自动补全(bash-completion)
  • 基于SpringBoot+Uniapp的非遗文化宣传小程序(AI问答、协同过滤算法、Echarts图形化分析)
  • uniapp请求封装上传