首页 > 其他分享 >278. 第一个错误的版本

278. 第一个错误的版本

时间:2023-11-07 18:22:57浏览次数:35  
标签:调用 第一个 错误 isBadVersion version 版本 278

目录

题目

  • 你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。

    假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。

    你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。

示例 1:

输入:n = 5, bad = 4
输出:4
解释:
调用 isBadVersion(3) -> false
调用 isBadVersion(5) -> true
调用 isBadVersion(4) -> true
所以,4 是第一个错误的版本

示例 2:

输入:n = 1, bad = 1
输出:1

题解:二分查找

# The isBadVersion API is already defined for you.
# @param version, an integer
# @return an integer
# def isBadVersion(version):

class Solution:
    def firstBadVersion(self, n):
        """
        :type n: int
        :rtype: int
        """
        left, right = 1, n
        while left <= right:
            mid = (left + right) // 2    # 向下取整除法计算中点 mid 
            if isBadVersion(mid):        # 若 mid 是错误版本,则最后一个正确版本一定在闭区间 [left, mid - 1]
                right = mid-1
            else:
                left = mid + 1           # 若 mid 是正确版本,则首个错误版本一定在闭区间 [mid + 1, right]
        return left                      # left指向首个错误版本,right指向最后一个正确版本

标签:调用,第一个,错误,isBadVersion,version,版本,278
From: https://www.cnblogs.com/lushuang55/p/17815589.html

相关文章

  • CentOS怎么安装最新版本docker
    环境查看[root@localhost~]#cat/etc/redhat-releaseCentOSLinuxrelease7.9.2009(Core)[root@localhost~]#uname-aLinuxlocalhost.localdomain3.10.0-1160.el7.x86_64#1SMPMonOct1916:18:59UTC2020x86_64x86_64x86_64GNU/Linux安装docker#更新源......
  • urllib 2.x版本下dh key too small 等SSL类错误的解决方法
    问题当我们使用python的requests访问目标网站的时候,有时会遇到以下这种错误(以https://dh-composite.badssl.com/为例)requests.exceptions.SSLError:HTTPSConnectionPool(host='dh-composite.badssl.com',port=443):Maxretriesexceededwithurl:/(CausedbySSLError......
  • .netCoreApi5.0+部署iis站点webconfig配置 HTTP 错误 500.24 - Internal Server Error
     <?xmlversion="1.0"encoding="utf-8"?><configuration><locationpath="."inheritInChildApplications="false"><system.webServer><handlers><addname="aspN......
  • node与npm升级到指定版本
    1、window+R输入cmd打开黑窗口,输入命令查看当前版本号:npm-v node-v2、[email protected] 例如([email protected])3、卸载npmuninstall4、清除缓存:npmcacheclean--force5、npm安装依赖失败问题:常见是由于版本之间兼容性问题。解决方式:使用yarn命令在从......
  • 如何使用git将某个文件回退到历史版本
    1.查看提交历史gitlogcommit4fe5108e0ca86d439f0da61751fac5845ec64f5c3commit38f9efd1f004996330a78c4b78372ba7c37469892commit5617205b96685ee157b67f3d66c71aa24cc378601会出现一些commitid2.找到需要回退的文件路径,如api/v2/s.php3.开始回退,要把api/v......
  • git 回滚版本
    //1.回滚到上一次版本gitreset--hardHEAD^//2.同步到远程master,使之生效gitpush-f==========https://www.runoob.com/git/git-reset.html$gitresetHEAD^#回退所有内容到上一个版本$gitresetHEAD^hello.php#回退hello.php文件的版......
  • [JSON] Fastjson 之版本对比:Fastjson vs Fastjson2
    1Fastjson21.1简述FASTJSON相对其他JSON库的特点是快,从2011年fastjson发布1.1.x版本之后,其性能从未被其他Java实现的JSON库超越。Fastjson2相对Fastjson1版本可以说是一次完全重构。这里从代码的角度,分析两者的一些区别;并总结一些新的,让小伙伴们使用Fastjson2或者进......
  • 面试必刷TOP101:22、比较版本号
    题目题解publicintcompare(Stringversion1,Stringversion2){//用双指针遍历两个字符串//截取.之前的数字,//比较数字大小,返回1、-1;如果全部比较完都没有结果,返回0//关键在于处理前导0:加在前面数字乘10的后面010-->1000010-->10......
  • go语言处理错误的正确姿势
    Go语言处理错误的正确姿势原创 枫潇潇兮 程序员技术成长之路 2023-09-2021:34 发表于福建收录于合集#go语言58个在Go语言中,错误处理是通过内置的error类型来实现的,而异常则是通过panic和recover函数来处理。Errorerror是一个内置的接口类型,它的定义如下:typeerro......
  • oracle 删除表空间错误 提示:ora-02429:无法删除用于强制唯一/
    sql>droptablespacezfxfzb;ora-01549:表空间非空,请使用INCLUDINGCONTENTS选项sql>droptablespacezfxfzbINCLUDINGCONTENTSanddatafiles;ora-00604:递归sql层1出现错误。ora-02429:无法删除用于强制唯一/主键的索引。sql>droptablespacezfxfzbinclud......