首页 > 编程语言 >10.9算法

10.9算法

时间:2023-10-09 09:55:15浏览次数:32  
标签:int end 10.9 isBadVersion mid start 算法 版本

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

假设你有 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
 

提示:

1 <= bad <= n <= 231 - 1

// The API isBadVersion is defined for you. // bool isBadVersion(int version);
class Solution { public:     int firstBadVersion(int n) {     int start=1,end=n,mid;     while(start < end){         mid = start + (end-start)/2;         if(isBadVersion(mid)){             end = mid ;                      }         else{             start = mid +1;         }     }     return start;     } };   关键: 1.一定要看清题目,想清楚,前面时false,后面是true,不要想当然的用isBadVersion给绕晕了,false的时候说明还不是坏版本,那就往后找找,true的时候说明已经是坏版本了,那我们还要考虑当前版本也可能是第一个错误的版本,退出条件就是两个相等及就是找到时 2.避免溢出可以利用算数平均也就是拼接为1/2(start+end),和(start+end)/2一样但是避免相加溢出,使用差值

标签:int,end,10.9,isBadVersion,mid,start,算法,版本
From: https://www.cnblogs.com/minipython-wldx/p/17750801.html

相关文章

  • 监控汇聚/视频监控系统EasyNVRAI智能分析网关:持刀检测算法场景汇总
    安防视频监控平台EasyCVR是一个具有强大拓展性、灵活的视频能力和轻便部署的平台。它支持多种主流标准协议,包括国标GB28181、RTSP/Onvif、RTMP等,还可以支持厂家的私有协议和SDK接入,例如海康Ehome、海大宇等设备的SDK。该平台不仅拥有传统安防视频监控的功能,还具备接入AI智能分析的......
  • KMP算法
    根本原理有限状态机资料链接https://zhuanlan.zhihu.com/p/83334559注:大小设置为256是因为Java的英文采用8位ASCII码,最大值为256......
  • 算法训练day29 LeetCode 39.40.131
    算法训练day29LeetCode39.40.13139.组合总和题目39.组合总和-力扣(LeetCode)题解代码随想录(programmercarl.com)classSolution{private:vector<vector<int>>result;vector<int>path;voidbacktracking(vector<int>&candidates,......
  • linux学习记录 10.9
    知识点:git-版本管理工具,一个树的结构来维护所有历史版本,可持久化,支持多人合作工作区:仓库的目录。工作区是独立于各个分支的。 =》暂存区:工作区写入版本库前的缓存区=》 版本库:将所有版本用一棵树的形式存下来每次head只会处于一个结点,要将当前暂存区存到版本库里的时候,就......
  • 文心一言 VS 讯飞星火 VS chatgpt (108)-- 算法导论10.1 6题
    六、用go语言,说明如何用两个栈实现一个队列,并分析相关队列操作的运行时间。文心一言:使用两个栈实现队列的基本思想是利用一个栈(stack1)来处理入队操作,另一个栈(stack2)来处理出队操作。以下是使用Go语言实现的代码:packagemainimport"fmt"typeQueuestruct{s......
  • 文心一言 VS 讯飞星火 VS chatgpt (108)-- 算法导论10.1 6题
    六、用go语言,说明如何用两个栈实现一个队列,并分析相关队列操作的运行时间。文心一言:使用两个栈实现队列的基本思想是利用一个栈(stack1)来处理入队操作,另一个栈(stack2)来处理出队操作。以下是使用Go语言实现的代码:packagemainimport"fmt"typeQueuestruct{stack......
  • Lnton羚通视频分析算法平台人员闯入、入侵识别算法系统预警 危险区域智能算法分析预警
    人员闯入识别系统是针对重要区域实时监测的一种安防措施。当系统监测到有人员靠近或闯入时,立即触发告警,及时通知安全管理人员进行处理。随着国家经济的不断提高和城市化进程的推进,各种偷盗和公共系统破坏事件频繁发生,传统的简单安防措施已无法满足日益智能化、系统化的安防需求。......
  • 视频汇聚\视频融合平台EasyCVRAI智能算法平台电动车入梯检测解决方案
    随着大众对出行的要求不断提高,交通拥堵也越来越常见。为了解决这个问题,越来越多的人选择骑乘电动车出行。然而,随着电动车数量的激增,很多用户为了方便起见,将电动车停放或充电在室内,有的甚至停放在公共区域如走道、楼梯间等。由于电动车车身多数采用易燃可燃材料,一旦起火,燃烧速度快,......
  • 视频汇聚\视频融合平台分析算法开发平台 EasyCVR关于对工服检测功能的详细介绍
    在某些特定场景,例如工地、后厨、化工、电力等领域,佩戴适当的工装是必不可少的。这不仅是安全规定的要求,还可以降低工作风险并提高工作效率。智能分析网关通过实时监测和识别工人的工装穿着情况,确保他们符合安全要求并做出相应提示或警告。这种技术可以提供额外的保障,帮助管理者更......
  • Lnton羚通算法算力云平台安全帽佩戴监测预警 安全帽检测自动识别系统
    安全帽检测识别系统采用多感知融合多流水线处理技术对监控画面进行实时剖析和识别。当系统发现施工现场工作人员未按要求配戴安全帽时,系统会自动发出预警声音。同时,系统会自动存储违规视频、现场地址和监控画面截图,并提示管理者。在人工智能的浪潮下,传统建筑施工安全管控得到了改善......