当前位置: 首页 > 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.dtcms.com/a/293081.html

相关文章:

  • AI一周事件(2025年7月15日-7月21日)
  • 开发避坑短篇(4):跨域请求中Session数据丢失的排查与修复方案
  • Qt资源系统:如何有效管理图片和文件
  • 【黑马SpringCloud微服务开发与实战】(五)微服务保护
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 访问鉴权功能实现
  • MMDeploy模型转换与TensorRT推理遇到问题及解决方案
  • GRU模型
  • Trae安装指定版本的插件
  • Clickhouse源码分析-副本数据同步
  • 网络编程---TCP协议
  • Spring AI 系列之十九 - Ollama集成Deepseek
  • 配置https ssl证书生成
  • 数字护网:一次深刻的企业安全体系灵魂演练
  • 接口测试用例选择及效能优化策略
  • vcs门级仿真(后仿真)指南
  • 如何处理各行业的DDOS问题?
  • VUE2 学习笔记3 v-on、事件修饰符、键盘事件
  • JAVA后端面试笔记
  • 前端性能优化:从“龟速“到“闪电“的终极加速指南
  • c++day05(ASCII)
  • Git GitHub精通:前端协作开发的“瑞士军刀“!
  • 字符串相关函数
  • visual studio 性能调试
  • 大数据之Hive:Hive中week相关的几个函数
  • 【Java】SVN 版本控制软件的快速安装(可视化)
  • Qt中的栅格布局的核心机制与栅格布局中的元素隐藏后重新排列布局解决方案解析
  • 基于CH32V203F8P6 interface_debug_print支持浮点格式输出
  • 模型优化-------模型压缩
  • Python之格式化Conda中生成的requirements.txt
  • timesFM安装记录