Find Bad Version

来源:互联网 发布:电子绘画软件 编辑:程序博客网 时间:2024/05/22 13:08

查找代码库的第一个坏版本。有一个SVN代码库,版本号从1N,自从某个提交了他的代码之后,代码库就坏掉了程序跑不起来了,也就是自从提交的这个版本及之后的所有版本都是坏的代码版本。现在有一个接口,isBadVersion(int version),可以用于判断version这个编号的代码是否是好的。请你利用这个接口,来找到提交的那个坏版本的编号。即,找到第一个i,使得isBadVersion(i-1) == false and isBadVersion(i) == true


public int findBadVersion(int N) {    if (N < 2) {        if (n == 1 && isBadVersion(1)) {            return 1;        }        return 0;    }        if (isBadVersion(1)) {        return 1;    }        int left = 0;    int right = N;    int mid;        while (left + 1 < right) {        mid = left + (right - left) / 2;        if (!isBadVersion(mid - 1) && isBadVersion(mid))) {            return mid;        } else if(isBadVersion(mid - 1)) {            right = mid;        } else {            left = mid;        }    }        if (!isBadVersion(left - 1) && isBadVersion(left)) {        return left;    }    if (!isBadVersion(right - 1) && isBadVersion(right)) {        return right;    }        return 0;}


0 0
原创粉丝点击