leetcode[First Bad Version]//待整理多种解法

来源:互联网 发布:毕向东的java视频教程 编辑:程序博客网 时间:2024/06/15 17:32
/* 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 low = 1, high = n;        int mid = low + (high - low) / 2;//mid = (low + high) / 2;这种算法会导致int溢出,导致死循环        while(low < high){            mid = low + (high - low) / 2;            if(isBadVersion(mid)){                high = mid;            }            else{                low = mid + 1;            }            //System.out.println("low:" + low + "     " + "mid:" + mid + "       " + "high:" + high);        }        if(isBadVersion(low)){            return low;        }        else if(isBadVersion(low + 1)){            return low + 1;        }        else{        return 0;        }    }}

原创粉丝点击