278. 第一个错误的版本

news/2024/5/19 23:13:46/

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

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

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/first-bad-version
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:

二分查找,返回true在mid或mid左侧,返回false,在mid右侧

注意当前位置mid也可能是答案出现的位置。

代码如下:

/* The isBadVersion API is defined in the parent class VersionControl.boolean isBadVersion(int version); */public class Solution extends VersionControl {public int firstBadVersion(int n) {int l = 0, h = n;while (l < h) {int mid = l + (h - l) / 2;if (isBadVersion(mid)) {h = mid;} else {l = mid + 1;}}return l;}
}


http://www.ppmy.cn/news/46874.html

相关文章

系统规划与管理师相关英语

1、system planning and management engineer 系统规划与管理师 2、information technology 信息技术 3、computer science and communication technology 计算机科学和通信技术 4、design、develop、install、implement information system and application softw…

javaagent 使用注意

前言 最近做项目&#xff0c;需要实现一个agent&#xff0c;实现运行过程替换字节码&#xff0c;当笔者实现这些功能时发现还是很多注意事项的。而且字节码的替换过程如果类的属性与方法升级了&#xff0c;那么加载就会报错。这种做法的好处是代码无侵入&#xff0c;缺点也很明…

在一个maven项目中使用maven命令进行junit单元测试

如何在一个maven项目中使用maven命令进行junit单元测试? 首先确定一个maven项目的结构: 包含源代码目录src/main/java.配置目录src/main/resources.测试代码目录src/test. 目录结构可视化如下: src/- main/- java/com/example/samplejunit- demo.java- resources/com/exam…

Ansys Speos | 实现车内氛围灯早期仿真验证

在本例中&#xff0c;将演示如何使用Speos进行RGB(红、绿、蓝)车内环境照明的早期研究&#xff0c;目的是在设计光导之前评估指定位置的照明效果。 使用到的产品Ansys Speos 2022 R2或更高版本&#xff0c;license为Enterprise版本能激活人眼视觉效果。 概览 在汽车行业&#…

C++11新特性有效总结

目录 语言可用性加强 (读现代C教程有感) nullptr constexpr if/switch 申明强化 &#xff08;C17开始&#xff09; 初始化参数列表 范围for迭代 两种类型推导方式 变长参数模板 SmartPointer Lambda 多线程 (并发与并行) 并发与并行的概念 C11中的并发并行 软件…

stm32cubemx IAP升级(三)

stm32cubemx IAP升级- UARTDMA实现不定长收发数据 板卡&#xff1a;Nucleo-L412 平台&#xff1a;macbook pro 工具&#xff1a;vscode stm32cubemx stm32cubeProgramer cmake toolchain Stm32CubeMx的配置 选择开启一路串口并配置成DMA&#xff0c;并使能中断&#xff0c;配…

第三十章 配置镜像 - 激活和更新镜像数据库

文章目录 第三十章 配置镜像 - 激活和更新镜像数据库激活和更新镜像数据库编辑或删除镜像成员清除报告异步镜像成员上的 FailoverDB 标志 第三十章 配置镜像 - 激活和更新镜像数据库 激活和更新镜像数据库 可以使用镜像监视器在备份故障转移成员和异步成员上激活和/或赶上镜像…

QPSK调制解调FPGA实现成果展示:

目录 QPSK调制解调使用参数&#xff1a; 调制&#xff1a; 解调&#xff1a; FPGA工程架构&#xff1a; 仿真参数&#xff1a; 仿真展示&#xff1a; 调制&#xff1a; 解调&#xff1a; MATLAB星座图展示&#xff1a; QPSK调制解调使用参数&#xff1a; 采样率为4M&…

ChatGPT研究报告:AIGC带来新一轮范式转移

本文约4000字&#xff0c;目标是快速建立AIGC知识体系&#xff0c;含有大量的计算专业名词&#xff0c;建议阅读同时扩展搜索。 一、行业现状 1、概念界定 区别于PGC与UGC不同的&#xff0c;AIGC是利用人工智能技术自动生成内容的新型生产方式。 2、数据模态 按照模态区分&a…

01-java基本概念

1、语言背景 Java语言是美国Sun公司&#xff08;Stanford University Network&#xff09;在1995年推出的计算机语言 Java之父&#xff1a;詹姆斯高斯林&#xff08;James Gosling&#xff09; 2009年&#xff0c;Sun公司被甲骨文公司收购&#xff0c;所以我们现在访问oracle官…

Unity 边缘光

文章目录 边缘光是什么实现原理代码 refer&#xff1a; 参考1 参考2 边缘光是什么 边缘光的用处很广泛&#xff0c;比如材质的渲染&#xff0c;云的渲染&#xff0c;角色选中特效等 边缘光也是描边的一种 下面这两张就是添加边缘光后的对比&#xff1a; 这样的效果在这种玉石…

【Linux内核解析-linux-5.14.10】进程管理

1. 进程管理 进程管理主要包括&#xff1a; 进程调度&#xff1a;Linux内核中的进程调度机制&#xff0c;包括进程调度策略、调度器、进程状态等。进程创建&#xff1a;Linux内核中的进程创建机制&#xff0c;包括fork()、exec()等函数的实现原理。进程通信&#xff1a;Linux…

代码随想录算法训练营第五十九天| 单调栈 503 下一个更大元素II 42 接雨水

代码随想录算法训练营第五十九天| 单调栈 503 下一个更大元素II 42 接雨水 LeetCode 503 下一个更大元素II 题目: 503.下一个更大元素II 思路&#xff1a;本题重点在于如何处理循环数组&#xff0c;首先想到将两个数组拼在一起&#xff0c;然后使用单调栈求下一个最大值 方…

打造安全无忧软件应用的十大最佳实践

安全无忧的软件开发最佳实践实在是很有必要&#xff0c;因为安全风险无处不在。在网络攻击盛行的时代&#xff0c;它们可能影响到每个人&#xff0c;包括个人、公司和政府。因此&#xff0c;确保软件开发的安全性至关重要。 本篇文章将解释了什么是安全的软件&#xff0c;如何…

[SSD核心技术:FTL 17] 固态硬盘掉电保护也是一门艺术 | 掉电保护原理与抉择 | 掉电保护测试

声明 主页:元存储的博客_CSDN博客 依公开知识及经验整理,如有误请留言。 个人辛苦整理,付费内容,禁止转载。 内容摘要 全文4800字, 阅读大约 24 分钟 前言 1 系统掉电的灾难

一起学 WebGL:三角形加上渐变色

大家好&#xff0c;我是前端西瓜哥。之前教大家绘制一个红色的三角形&#xff0c;这次我们来画个有渐变的三角形。 本文为系列文章&#xff0c;请先阅读如何绘制红色三角形的文章&#xff1a; 《一起学 WebGL&#xff1a;绘制三角形》 原来的写法&#xff0c;颜色是在片元着色器…

恢复误删文件

误删恢复 用losf恢复进程存在的文件 注意此处要后台进程存在 创建一个文件&#xff0c;用tail命令&#xff0c;模拟文件一直被监听 打开另外一个终端&#xff0c;删除这个文件 用lsof命令查看被删除的文件&#xff0c;可以发现文件虽然被删除&#xff0c;但是进程依然在 然后…

16 个优秀的 Vue 开源项目

为什么我们要关注Vue Vue是一个用于构建用户界面的JavaScript框架。值得关注的是&#xff0c;它在没有谷歌和Facebook的支持下获得了大量的人气。 Vue是结合react和angular的最好的方法&#xff0c;并且拥有一个有凝聚力的&#xff0c;活跃的&#xff0c;能够应对开发问题的大型…

2023/4/13总结

最小生成树 一、Prim算法 1.prim算法也被称为“加点法”&#xff0c;因为该算法是先从任意一顶点出发不断的选择目前距离最近且未被选择的点加入到已选的集合中&#xff0c;直到所有的点都被选到。&#xff08;和最短路径中的Dijkstra算法很像&#xff09; 2.prim算法的实现…

文件操作【下篇】

文章目录 &#x1f5c3;️5.文件的随机读写&#x1f4c1;5.1. fseek&#x1f4c1;5.2. ftell&#x1f4c1;5.3. rewind &#x1f5c3;️6.文本文件和二进制文件&#x1f5c3;️7.文件读取结束的判定&#x1f4c1;7.1. 被错误使用的 feof &#x1f5c3;️8.文件缓冲区 &#x1f…