Java解决第一个错误的版本

Java解决第一个错误的版本

01 题目

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

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

02 知识点

  • 二分查找
  • while循环

03 我的题解

// The isBadVersion API is defined in the parent class VersionControl.
//       boolean isBadVersion(int version);public class Solution extends VersionControl {public int firstBadVersion(int n) {//从左边循环到右边,rs记录答案int l=1;int rs=0;while(l<=n){//最小值加上差,防止数据溢出int mid=l+(n-l)/2;//但isBadVersion(mid)返回值为true时,说明mid往后都是true,右极n值改变为mid前的数//但isBadVersion(mid)返回值为flase时,说明mid往前都是flase,左极l值改变为mid后的数if(isBadVersion(mid)){rs=mid;n=mid-1;                       }else{l=mid+1;     }}return rs;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/596698.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SAN与NAS详细对比

SAN&#xff08;Storage Area Network&#xff09;与 NAS&#xff08;Network Attached Storage&#xff09;的详细比较 1. 原理与架构 SAN&#xff08;存储区域网络&#xff09; 原理&#xff1a;SAN是一种基于光纤通道、iSCSI或其他高速传输技术构建的专用网络&#xff0c;…

sql把子表多条数据进行组合

select*from dbo.np_syyp select*from dbo.np_yptest select*,STUFF((select ,zb.testname from np_yptest zb where zb.syypidmb.syypid for XML path()),1,1,) AS SUMNAME from np_syyp mb

引导和服务

目录 一、Linux操作系统引导过程 1、引导过程总览图 2、引导过程的详细步骤 二、系统初始化进程 1、init进程&#xff08;串行启动&#xff09; 2、Systemd&#xff08;并行启动&#xff09; 3、Centos6与Centos7的区别&#xff1a; 4、Systemd单元类型 5、运行级别所…

EFCore8泛化关系在数据库中的体现

如图&#xff0c;在关系数据库中&#xff0c;数据表达为一张表&#xff0c;用一个字段“Discriminator”来做区分&#xff1a; 要达到这样的效果&#xff08;数据库中的结构&#xff09;&#xff0c;需要在XXContext中将继承关系的三个类都加上&#xff1a; public DbSet<P…

判断用户输入的年份是否为闰年:

以下实例用于判断用户输入的年份是否为闰年&#xff1a; 实例(Python 3.0) # -*- coding: UTF-8 -*- # Filename : test.py # author by : www.dida100.com year int(input("输入一个年份: ")) if (year % 4) 0: if (year % 100) 0: if (year % …

在 Mac 上轻松安装和配置 JMeter

Apache JMeter 是一个开源的负载测试工具&#xff0c;可以用于测试静态和动态资源&#xff0c;确定服务器的性能和稳定性。在本文中&#xff0c;我们将讨论如何下载和安装 JMeter。 安装 Java&#xff08;已安装 Java 的此步骤可跳过&#xff09; 要安装 Java&#xff0c;请按…

想学鸿蒙,又怕找不到工作?能有前途吗?

鸿蒙有没有前途&#xff0c;能不能找到工作&#xff1f;其实这与市场行情有关&#xff0c;这几年的互联网大家都已经感受到了&#xff0c;十分悲凉。不管是前端还是Android等开发行业&#xff0c;不是被裁员就是内卷严重&#xff0c;这几年倒下了无数家中小型互联网企业。 而作…

腾讯云2024年最新优惠活动整理汇总

腾讯云作为国内领先的云计算服务提供商&#xff0c;一直致力于为用户提供优质、高效的服务。为了更好地满足用户需求&#xff0c;腾讯云经常推出各种优惠活动&#xff0c;本文将对腾讯云最新优惠活动进行整理汇总&#xff0c;帮助用户更好地了解和利用这些福利。 一、腾讯云新用…

kali2.0安装VMware Tools 和自定义改变分辨率

kali2.0安装VMware Tools 和自定义改变分辨率 VMware Tools 简介&#xff1a;VMware Tools安装&#xff1a;自定义改变分辨率&#xff1a;xrandr命令修改分辨率&#xff1a; 前言&#xff1a; 因为kali2.0比较老 所以需要手动安装 WMware Tools 进行复制粘贴操作&#xff01; …

企业需要专业的合同档案管理系统吗

文书合同是企业与供应商、客户、员工等签订的重要文件&#xff0c;具有法律效力和约束力。合同档案管理系统可以帮助企业有效管理合同文件&#xff0c;提高合同管理的效率和准确性。 专久智能合同档案管理系统具备以下优点&#xff1a; 1. 文件安全性&#xff1a;合同文件经过专…

力扣刷题-二叉树-合并二叉树

617.合并二叉树&#xff08;经典&#xff09; 合并二叉树是操作两棵树的题目里面很经典的&#xff0c;如何对两棵树遍历以及处理&#xff1f; 给定两个二叉树&#xff0c;想象当你将它们中的一个覆盖到另一个上时&#xff0c;两个二叉树的一些节点便会重叠。 你需要将他们合并…

NE555学习笔记-2024

实物图片 NE555引脚图 内部时序图 示列1&#xff0c;红外接收电路 红外接收电路的工作原理&#xff1a;在上述电路中&#xff0c;TSOP1738构成了该电路的主要组成部分&#xff0c;旨在检测来自任何来源的红外信号。这用于检测38 KHz范围的信号&#xff0c;因此命名为“TSOP173…

探秘Spring Bean的秘境:作用域篇【beans 三】

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 探秘Spring Bean的秘境&#xff1a;作用域篇【beans 三】 前言单例作用域如何声明单例Bean&#xff1a;特点&#xff1a; 原型作用域如何声明原型Bean&#xff1a;特点&#xff1a; 会话作用域如何声明…

4. 返回 const 对象

// 1: three Vector objects // 2: dyslectic programming String s2, $3; s3 s2 sl; 在上述代码中,s2.operator(s2)的返回值被赋给s3。为此,返回String对象或String对象的引用都是 可行的,但与Vector范例中一样,通过使用引用,可避免该函数调用String的复制构造函数来创建一…

【KingbaseES】实现MySql函数Space

CREATE OR REPLACE FUNCTION SPACE(input_length integer) RETURNS text AS $$ BEGIN RETURN REPEAT( , input_length) AS SPACES; END; $$ LANGUAGE plpgsql;

深度学习课程实验二深层神经网络搭建及优化

一、 实验目的 1、学会训练和搭建深层神经网络&#xff1b; 2、掌握超参数调试正则化及优化。 二、 实验步骤 初始化 1、导入所需要的库 2、搭建神经网络模型 3、零初始化 4、随机初始化 5、He初始化 6、总结三种不同类型的初始化 正则化 1、导入所需要的库 2、使用非正则化…

实验笔记之——基于Linux服务器复现Instant-NGP及常用的tmux指令

之前博客实现了基于windows来复现Instant-NGP&#xff0c;本博文在linux服务器上测试 实验笔记之——基于windows复现Instant-NGP-CSDN博客文章浏览阅读444次&#xff0c;点赞15次&#xff0c;收藏7次。之前博客对NeRF-SLAM进行了调研&#xff0c;本博文先复现一下Intant-NGP。…

C++基础语法——基本知识、数据类型、运算符及程序流程结构

本专栏记录C学习过程包括C基础以及数据结构和算法&#xff0c;其中第一部分计划时间一个月&#xff0c;主要跟着黑马视频教程&#xff0c;学习路线如下&#xff0c;不定时更新&#xff0c;欢迎关注。 当前章节处于&#xff1a; >第1阶段-C基础入门 ---------第2阶段实战-通讯…

Java基础进阶(学习笔记)

注&#xff1a;本篇的代码和PPT图片来源于黑马程序员&#xff0c;本篇仅为学习笔记 static static 是静态的意思&#xff0c;可以修饰成员变量&#xff0c;也可以修饰成员方法 修饰成员的特点&#xff1a; 被其修饰的成员, 被该类的所有对象所共享 多了一种调用方式, 可以通过…

OpenHarmony源码转换器—多线程特性转换

本文讨论了如何将多线程的 Java 代码转换为 OpenHarmony ArkTS 代码​ 一、简介 Java 内存共享模型 以下示例伪代码和示意图展示了如何使用内存共享模型解决生产者消费者问题。 生产者消费者与共享内存间交互示意图 为了避免不同生产者或消费者同时访问一块共享内存的容器时…