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

Leetcode868:二进制间距

LeetCode868

朴素想法

遍历枚举每一位,使用变量pre记录上一位为1的位置。比较两个1之间的距离选出最大值即可。时间复杂度为O(logn)

class Solution:def binaryGap(self, n: int) -> int:pre=Noneans=0# 遍历位length=n.bit_length()for i in range(length):bit=(n>>i)&1# 判断if bit==1:if pre==None:pre=ielse:ans=max(ans,i-pre)pre=ireturn ans 

使用位运算技巧优化

可以使用位运算获取low_bit的技巧加速。首先去除后导0,使用x & -x得到除最低位1,其余位全置零的结果。比如100100操作之后为000100。这样使用bit_length()就能快速获取间隔距离。

class Solution:def binaryGap(self, n: int) -> int:ans=0# 先去除后导0以及第一个1,下面等价于 n //=(n & -n)*2n >>=(n & -n).bit_length()while n:# 寻找取出后的lowbit,即为1的最小位的长度。gap=(n&-n).bit_length()ans=max(ans,gap)n >>=gapreturn ans
http://www.jsqmd.com/news/402090/

相关文章:

  • 基于Thinkphp和Laravel的健身房管理系统_ljta9
  • Chatbot Pro 新手入门指南:从零搭建智能对话系统的实战解析
  • ChatTTS下载zip文件实战:高并发场景下的性能优化与避坑指南
  • 基于Thinkphp和Laravel的房产中介房屋供求系统vue
  • 常见问题解决 --- 为什么我的ida pro执行时发现地址错位,范围错误,服务假死的问题
  • 2026美国会展指南:备受好评的会展公司大盘点,展厅设计/展陈设计/展位布置/会展服务/展馆装修/展览,会展公司排行 - 品牌推荐师
  • 《Python 编程全景解析:从核心精要到测试替身(Test Doubles)五大武器的实战淬炼》
  • 继电器原理与工程设计:从电磁吸力到触点保护
  • 从零搭建Chatbot知识库嵌入模型:技术选型与实战指南
  • 深入解析gr.chatbot():构建高效AI辅助开发聊天机器人的实战指南
  • AI辅助开发实战:基于CosyVoice构建智能语音助手的完整教程
  • 用数据说话 10个AI论文平台测评:自考毕业论文写作必备工具推荐
  • 三极管原理与工程应用:从结构、状态到驱动设计
  • AI智能客服方案实战:从架构设计到生产环境部署的避坑指南
  • 《解锁 Python 潜能:从异步基石到 pytest-asyncio 高级测试实战与最佳实践》
  • 反激变压器设计核心:磁通控制、磁芯选型与绕组工艺
  • 不踩雷! 9个AI论文工具测评:自考毕业论文写作必备神器
  • 从零搭建AI智能客服:技术选型与接入实战指南
  • 性价比炸裂?150元的NEC小屏笔记本,办公追剧性能无忧,J4105+16G+120G硬盘,但屏幕瑕疵明显!
  • 干货来了:MBA专属降AIGC网站,千笔·降AIGC助手 VS 灵感风暴AI
  • ChatGPT聊天归档技术解析:从数据管理到智能分析
  • 计算机类毕设系统开发新手入门:从零搭建可交付的毕业设计项目
  • ChatTTS语音拷贝技术实战:如何高效实现语音克隆与批量生成
  • 宠物猫猫皮肤病检测数据集VOC+YOLO格式799张4类别
  • 从此告别拖延! 降AIGC软件 千笔 VS 知文AI,本科生专属利器!
  • AI 辅助开发实战:高效实现「关于水印的毕设」中的动态水印系统
  • 电商客服AI智能体的架构设计与实战:从对话管理到系统集成
  • SiameseUIE在学术文献处理中的应用:论文摘要中方法、数据集、指标三要素抽取
  • 学霸同款 10个AI论文网站测评!专科生毕业论文+开题报告写作神器推荐
  • 微信立减金高效回收变现平台哪里有? - 京顺回收