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

力扣刷题(第六十四天)

灵感来源 

- 保持更新,努力学习

- python脚本学习

第一个错误的版本

解题思路

  1. 初始化左右边界:左边界 left = 1,右边界 right = n
  2. 二分查找循环
    • 计算中间版本号 mid
    • 若 mid 是错误版本,说明第一个错误版本在 [left, mid] 中,更新右边界。
    • 若 mid 不是错误版本,说明第一个错误版本在 [mid+1, right] 中,更新左边界。
  3. 终止条件:当 left 和 right 相遇时,即为第一个错误版本。
    # The isBadVersion API is already defined for you.
    # @param version, an integer
    # @return a bool
    # def isBadVersion(version):class Solution:def firstBadVersion(self, n):""":type n: int:rtype: int"""left, right = 1, nwhile left < right:mid = left + (right - left) // 2  # 防止整数溢出if isBadVersion(mid):# 第一个错误版本在[left, mid]中right = midelse:# 第一个错误版本在[mid+1, right]中left = mid + 1# 循环结束时,left和right指向同一个位置return left

逐行解释

# The isBadVersion API is already defined for you.
# @param version, an integer
# @return a bool
# def isBadVersion(version):class Solution:def firstBadVersion(self, n):""":type n: int:rtype: int"""# 初始化左边界为第一个版本left = 1# 初始化右边界为最后一个版本right = n# 循环条件:左边界严格小于右边界# 当left == right时,循环结束,此时的left即为第一个错误版本while left < right:# 计算中间版本号,使用(left + right) // 2可能导致整数溢出# 例如当left和right都接近INT_MAX时,加法会溢出mid = left + (right - left) // 2# 检查中间版本是否为错误版本if isBadVersion(mid):# 如果中间版本是错误的,第一个错误版本可能是mid或在mid左侧# 因此更新右边界为mid(注意:没有减1,因为mid可能就是答案)right = midelse:# 如果中间版本不是错误的,第一个错误版本必然在mid右侧# 因此更新左边界为mid + 1left = mid + 1# 循环结束时,left和right指向同一个位置,即第一个错误版本return left

相关文章:

  • 解决mysql左连接加where就不会保留左表中的全部数据的问题
  • 【转】如何画好架构图:架构思维的三大底层逻辑
  • 冰箱压缩机电机驱动板【IPM部分】
  • ffmpeg(六):图片与视频互转命令
  • 抖音的视频怎么下载下来——下载狗解析工具
  • QC -io 服务器排查报错方式/报错: Failed to convert string to integer of varId variable!“
  • Nginx反向代理解决跨域问题详解
  • 进程间通信、线程间通信
  • 基于Qt的UDP主从服务器设计与实现
  • 集群聊天项目服务器----JSON库
  • C语言:排序算法
  • 作为测试人员,平时用什么大模型?怎么用?
  • PHP语法基础篇(五):流程控制
  • 如何匹配晶振的负载电容
  • 【SystemVerilog 2023 Std】第6章 数据类型 Data types (1)
  • C# 网络编程-关于请求头(Request Headers)和 响应头(Response Headers)作用(五)
  • SiteAzure:解决数据库服务器内存频繁吃满
  • 【Linux 平台总线驱动开发实战】
  • 三种语言写 MCP
  • 大数据量的分页,怎么办?
  • 网站开发维护公司/网页制作代码大全
  • 推荐一下网站谢谢/方法seo
  • 昌平住房和城乡建设委员会网站/中山谷歌推广
  • 孟津网站建设/怎么利用互联网推广
  • 深圳金融投资网站建设/seo建站公司
  • 单页网站系统/浏览器观看b站视频的最佳设置