首页 > 编程语言 > 详细

leetcode 278.第一个错误的版本(Java 二分查找 easy)

时间:2019-09-25 16:37:33      阅读:92      评论:0      收藏:0      [点我收藏+]

https://leetcode-cn.com/problems/first-bad-version/submissions/

给定n个版本,根据isBadVersion(),判断第一个出错误,即值为true的版本号。

 

如果第 m 个版本出错,则表示第一个错误的版本在 [l, m] 之间,令 h = m;否则第一个错误的版本在 [m + 1, h] 之间,令 l = m + 1。

因为 h 的赋值表达式为 h = m,因此循环条件为 l < h。

/* 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=1,h=n;
        while(l<h){
            int mid=l+(h-l)/2;
            if(isBadVersion(mid)){
                h=mid;
            }
            else{
                l=mid+1;
            }
        }
        return l;
    }
}

 

leetcode 278.第一个错误的版本(Java 二分查找 easy)

原文:https://www.cnblogs.com/y1040511302/p/11585165.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!