zoukankan      html  css  js  c++  java
  • 74. First Bad Version 【medium】

    74. First Bad Version 【medium】

    The code base version is an integer start from 1 to n. One day, someone committed a bad version in the code case, so it caused this version and the following versions are all failed in the unit tests. Find the first bad version.

    You can call isBadVersion to help you determine which version is the first bad one. The details interface can be found in the code's annotation part.

     Notice

    Please read the annotation in code area to get the correct way to call isBadVersion in different language. For example, Java is SVNRepo.isBadVersion(v)

    Example

    Given n = 5:

    isBadVersion(3) -> false
    isBadVersion(5) -> true
    isBadVersion(4) -> true
    

    Here we are 100% sure that the 4th version is the first bad version.

    Challenge 

    You should call isBadVersion as few as possible.

    解法一:

     1 /**
     2  * class SVNRepo {
     3  *     public:
     4  *     static bool isBadVersion(int k);
     5  * }
     6  * you can use SVNRepo::isBadVersion(k) to judge whether 
     7  * the kth code version is bad or not.
     8 */
     9 class Solution {
    10 public:
    11     /*
    12      * @param n: An integer
    13      * @return: An integer which is the first bad version.
    14      */
    15     int findFirstBadVersion(int n) {
    16         int start = 1;
    17         int end = n;
    18         
    19         while (start + 1 < end) {
    20             int mid = start + (end - start) / 2;
    21             
    22             if (SVNRepo::isBadVersion(mid) == false) {
    23                 start = mid;
    24             }
    25             else {
    26                 end = mid;
    27             }
    28         }
    29         
    30         return (SVNRepo::isBadVersion(start) ? start : end);
    31     }
    32 };
  • 相关阅读:
    SSLOJ 1298.网站计划
    SSLOJ 1297.GF打Dota
    SSLOJ 1296.猫咪的进化
    脚本1)启动jetty的脚本
    mysql的常用命令
    mysql异常com.mysql.jdbc.PacketTooBigException
    debian apt-get联网安装mysql服务
    mysql 解决Warning: World-writable config file ‘/etc/my.cnf’ is ignored
    ubuntu/debian/linux彻底卸载mysql
    Ubuntu12.04_X64 apt-get install 报错404
  • 原文地址:https://www.cnblogs.com/abc-begin/p/7551654.html
Copyright © 2011-2022 走看看