算法二分查找之第一个错误的版本

2023-11-16

java方法:

/* The isBadVersion API is defined in the parent class VersionControl.
      boolean isBadVersion(int version); */

public class Solution extends VersionControl {
    public int firstBadVersion(int n) {
        //false是没出错,true是出错,强调一下,不然会陷入自闭状态,楼主第一次做的时候顶级自闭
        //想半天想不通哪里出错,提交了n遍
        //所以二分路线是这样的,false找右边,true就找左边
        int l = 1 , h = n;
        while(l < h){
            int mid = l + (h - l) / 2;
            if(isBadVersion(mid)){
                h = mid; 
            }else{
                l = mid + 1;
            }
        }
        return l;
    }
}

C++方法:

 循环判断有等号 ,循环中都要偏移,retrun left还是right需要辨别

class Solution {
public:
    int firstBadVersion(int n) {
        int left = 1;
        int right = n;

        while (left <= right) {
            int mid = (right-left)/2 + left;
            // 只考虑一段,另一端不断缩进
            /* 理解:
                需要找到第一个bad的状态
                若当前mid不是,则闭区间[left, mid]之间全不是
                那第一个至少是mid+1的状态
                
                其余什么都不用想
                让另一边right = mid - 1即可(因为循环中是有=的)
            */
            if (!isBadVersion(mid)) {
                left = mid + 1;
            } else {
                right = mid - 1;
            }
        }

        return left;
    }
};

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

算法二分查找之第一个错误的版本 的相关文章

  • 为什么 std::function 不是有效的模板参数,而函数指针却是?

    我已经定义了名为的类模板CallBackAtInit其唯一目的是在初始化时调用函数 构造函数 该函数在模板参数中指定 问题是模板不接受std function作为参数 但它们接受函数指针 为什么 这是我的代码 include
  • 如何增加ofstream的缓冲区大小

    我想增加 C 程序的缓冲区大小 以便它不会过于频繁地写入 默认缓冲区是 8192 字节 我尝试使用 pubsetbuf 将其增加到 200K 原始代码 ofstream fq fastq1 cstr ios out fastq1 is a
  • 如何从字符串中解析一个大整数? [复制]

    这个问题在这里已经有答案了 我有一个这样的方法 Integer parseInt myInt 不是这个整数变得很长 我得到以下异常 java lang NumberFormatException For input string 40001
  • 如何使用 C# 查询远程 MS ACCESS .mdb 数据库

    我正在尝试使用 C 查询 mote MS ACCESS 数据库 mdb 文件 将文件复制到本地计算机时可以成功查询它 我只想远程放置文件 所以我的客户端程序不包含原始数据 static string m path http www xyz
  • 如何在 EF Core 2.1 中定义外键关系

    我的 DAL 使用 EF Core 2 1 这就是我的模型的样子 一名用户只能拥有一种角色 Role entity kind of master public class Role public int RoleId get set pub
  • 如何从intellij项目视图中隐藏不必要的文件?

    给定一个示例 gradle 项目 其项目结构如下所示 正如你所看到的 有很多东西你实际上不需要在想法中看到 但你需要它们存在 我知道下面被忽略的文件 文件夹类型Editor File Types但这些正在影响库和项目 idea 会在各处忽略
  • Java 中 JButton 的击键/热键

    最初我使用 JMenu 并建立热键以使用加速器工作 它运行得很好 现在我想在 JButton 中实现相同的行为 但我陷入困境 这是我编写的代码 请分享您的想法 以便我可以走上正确的道路 import javax swing import j
  • 在 C++ 代码 gdb 中回溯指针

    我在运行 C 应用程序时遇到段错误 在 gdb 中 它显示我的一个指针位置已损坏 但我在应用程序期间创建了 10 万个这样的对象指针 我怎样才能看到导致崩溃的一个 我可以在 bt 命令中执行任何操作来查看该指针的生命周期吗 谢谢 鲁奇 据我
  • WinForms - 加载表单时如何使用 PaintEventArgs 运行函数?

    我试图理解图形 在 Graphics FromImage 文档中 它有这样的示例 private void FromImageImage PaintEventArgs e Create image Image imageFile Image
  • HTTP 状态 405 - 此 URL java servlet 不支持 HTTP 方法 POST [重复]

    这个问题在这里已经有答案了 我无法使页面正常工作 我有要发布的表单方法和我的 servlet 实现doPost 然而 它不断地向我表明我并不支持POST方法 我只是想做一个简单的网站并将值插入到我的 MySQL 数据库中 type Stat
  • 用数组或向量实现多维数组

    我想使用单个数组或向量实现多维数组 可以像通常的多维数组一样访问它 例如 a 1 2 3 我陷入困境的是如何实施 操作员 如果数组的维数为 1 则 a 1 应该返回位于索引 1 处的元素 但是如果维数大于一怎么办 对于嵌套向量 例如 3 维
  • 将日期时间显示为 MM/dd/yyyy HH:mm 格式 C#

    在数据库中 日期时间以 MM dd yyyy HH mm ss 格式存储 但是 我想以 MM dd yyyy HH mm 格式显示日期时间 我通过使用 String Format 进行了尝试 txtCampaignStartDate Tex
  • javax.media.jai 类的公共下载?

    这是一个非常简单的问题 我一直在寻找可以下载 javax media jai 库的地方 我找到了 jai imageio 库 但是我发现的所有其他 jai 内容要么已经过时 2008 年及之前 然后我遇到了登录屏幕 是否有 javax me
  • 时间:2019-03-17 标签:c#TimerStopConfusion

    我想通过单击按钮时更改文本颜色来将文本框文本设置为 闪烁 我可以让文本按照我想要的方式闪烁 但我希望它在闪烁几次后停止 我不知道如何在计时器触发几次后让它停止 这是我的代码 public Form1 InitializeComponent
  • Android UnityPlayerActivity 操作栏

    我正在构建一个 Android 应用程序 其中包含 Unity 3d 交互体验 我已将 Unity 项目导入 Android Studio 但启动时该 Activity 是全屏的 并且不显示 Android 操作栏 我怎样才能做到这一点 整
  • 如何从 JavaFX 中的另一个控制器类访问 UI 元素?

    我有一个使用 NetBeans 8 编写的 JavaFX Java 8 应用程序 没有SceneBuilder 我的应用程序有一个主窗口 该窗口有自己的 FXML 文件 primary fxml 和自己的控制器类 FXMLPrimaryCo
  • 值和类型的简洁双向静态 1:1 映射

    我将从我想象如何使用我想要创建的代码开始 它不必完全像这样 但它是我在标题中所说的 简洁 的一个很好的例子 就我而言 它是将类型映射到相关的枚举值 struct bar foo
  • MSVC编译器下使用最大成员初始化联合

    我正在尝试初始化一个LARGE INTEGER在 C 库中为 0 确切地说是 C 03 以前 初始化是 static LARGE INTEGER freq 0 在 MinGW 下它产生了一个警告 缺少成员 LARGE INTEGER Hig
  • 受信任的 1.5 小程序可以执行系统命令吗?

    如果是的话 这个能力有什么限制吗 具体来说 我需要以 Mac OSX 为目标 我以前用过这个在 Windows 系统上启动东西 但从未在 Mac 上尝试过 public void launchScript String args Strin
  • 决策树和规则引擎 (Drools)

    In the application that I m working on right now I need to periodically check eligibility of tens of thousands of object

随机推荐

  • 如何防止uniswap/pancakeswap被机器人夹

    被机器人夹是通俗说法 实际就是 front running 抢先提前交易 具体就是机器人在链上侦测到你有买入行为的时候 他立刻买 gas给的比你高 快你一步确认 这样你成交价就高了 因为dex有滑点 所以你依旧会以高一点的价格成交并且再将价
  • 「PAT乙级真题解析」Basic Level 1002 (问题分析+完整步骤+伪代码描述+提交通过代码)

    乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范 从小白开始逐步掌握用编程解决问题 PAT乙级BasicLevelPractice 1002 问题分析 方案一 模拟 题目直接给定了步骤 用模拟法将给定步骤写成代码逻辑是
  • C++primer十五章笔记15.7构造函数与拷贝控制

    15 7构造函数与拷贝控制 位于继承体系中的类也需要控制当其对象执行一系列操作时发生什么样的行为 创建 拷贝 移动 赋值和销毁 如果一个类没有定义拷贝控制操作 则编译器会给出一个合成的版本 可以被定义为被删除的函数 15 7 1虚析构函数
  • webrtc scoped_refptr、C++智能指针(防忘记录)

    C 智能指针有三种 shared ptr unique ptr weak ptr 具体说明参见 防忘链接 https www cnblogs com wxquare p 4759020 html webrtc的scoped refptr类似
  • maven下载不到源码:Cannot download sources Sources not found for:

    记录下记录下 很神奇的问题 也不去深究了 解决就行 侧重点不在这 就把方法记录下了 文章目录 问题 问题排查 方案一 Maven的镜像换一换试一试 方案二 删掉工程下的缓存和IDE配置文件 方案三 找个能下载源码的同事或环境换上它的mave
  • 图神经网络入门推荐好文(附GNN大佬资料包下载福利)

    今天想和大家分享的是图卷积神经网络 随着人工智能发展 很多人都听说过机器学习 深度学习 卷积神经网络这些概念 但图卷积神经网络 却不多人提起 那什么是图卷积神经网络呢 简单的来说就是其研究的对象是图数据 Graph 研究的模型是卷积神经网络
  • 信息收集-服务器信息

    服务器上面可以运行大量的系统服务和第三方应用服务 如果操作系统或者第三方软件没有及时升级打补丁 攻击者就有可能直接通过服务器上运行的服务进行攻击 服务器需要收集的信息包含三个方面 操作系统信息等识别 waf Web应用程序防火墙 CMS 内
  • 有没有哪个瞬间,让你突然对ChatGPT感到失望?

    不知道你是否和我一样 在第一次使用ChatGPT输入Prompt 并得到答复的那一刻 都会忍不住地赞叹一句 握草 但随着时间慢慢拉长 体验不断深入 想法也会慢慢改变 主题图 by Midjourney Prompt The moment o
  • [内核内存] slab分配器1---slab机制详解

    文章目录 1 slab分配器原理 2 slab分配器重要数据结构以及组织关系 2 1 slab cache描述符struct kmem cache 2 2 slab描述符struct page 3 slab分配器中各个重要结构体间的关系总结
  • 零基础自学计算机方法大全

    欢迎入读 尚学堂给同学们带来全新的Java300集课程啦 java零基础小白自学Java必备优质教程 学习从来没有捷径 只有学成之后才会一切是那么简单 想要学会编程 一定要有坚定的信念 1 选方向 定目标 首先你需要做好功课 了解计算机的分
  • paxos之Multi-Paxos

    paxos之Multi Paxos 一 基本原理介绍 朴素Paxos算法的Latency很高 Multi Paxos通过改变Promised的生效范围至全局的Instance 收到来自其他节点的Accept 则进行一段时间的拒绝提交请求 从
  • Git使用方法 与 gitee实战 & sourcetree

    参考 Git教程 廖雪峰的官方网站 版本控制工具 git 1 版本控制 记录一个或者多个文件内容变化 以便于未来查询指定的版本信息 svn 集中式 git 分布式 防止代码的丢失 团队协作 版本还原 更好的管理代码 2 git介绍 用于代码
  • 正则匹配规则

    规则1 优先选择最左端的匹配结果 Rule 1 The Match That Begins Earliest Wins 根据这条规则 起始位置最靠左的匹配结果总是优先于其他可能的匹配结果 这条规则并没有规定优先的匹配结果的长度 稍后将会讨论
  • Java项目本地访问resource目录文件运行正常,打包成jar后提示没有那个文件目录

    本地获取方法代码入下 这种方式得到的路径 打包成jar后会访问不到这个路径 this getClass getClassLoader getResource FONT PATH getPath usr local api fxq contr
  • Android开发环境的搭建

    Android开发环境的搭建 在开始Android开发之旅启动之前 首先要搭建环境 然后创建一个简单的HelloWorld 本文的主题如下 1 环境搭建 1 1 JDK安装 1 2 Eclipse安装 1 3 Android SDK安装 1
  • 生于1999年的11家互联网公司:为何唯独阿里巴巴化茧成蝶?

    1999年 是中国互联网发展史上颇具传奇性的一年 这一年 QQ的前身OICQ横空出世 搜狐和张朝阳风头正劲 李彦宏辞职回京创业 李国庆创立当当 陈天桥创立盛大 马云创立了阿里巴巴 同一起跑线之下 还有携程 中华网 易趣 天涯社区 8848
  • Map 转化为数组

    含义 Map 数据结构类似于对象 也是键值对的集合 但是键的范围不限于字符串 各种类型的值 包括对象 都可以当做键 Map 结构提供了 值 值 的对应 是更完善的 Hash 结构实现 Map 可以作为构造函数 新建 Map new Map
  • python distutils、setuptools打包第三方库

    1 项目目录 src 引用时的包名 可随意修改 http 子类包名 可随意修改 init py xxx py init py xxx py readme md setup py 打包信息 例如上命名方式 打包后引用时为 import src
  • 如何在 Python 中终止 Windows 上运行的进程?

    当深入研究Windows操作系统上的Python开发领域时 无疑会出现需要终止正在运行的进程的情况 这种终止背后的动机可能涵盖多种情况 包括无响应 过度资源消耗或仅仅是停止脚本执行的必要性 在这篇综合性的文章中 我们将探讨各种方法来完成使用
  • 算法二分查找之第一个错误的版本

    java方法 The isBadVersion API is defined in the parent class VersionControl boolean isBadVersion int version public class