278.First Bad Version

    /*
     *  278.First Bad Version
     *  2016-6-26 by Mingyang
     *  一般的Binary Search方法
     *  因为一定有一个错误答案,所以不用=
     *  开始我自己写的是小于等于,那么最好的判断这样错误的方法就是只有两个input
     *  1开始错,那么mid=1,错误的,high=1,当low跟high相等的时候,mid还是
     *  还是错,还是继续无限循环下去,所以不行!记住使用两个输入方法!!!!!
     */    
    public int firstBadVersion(int n) {
        int start = 1, end = n;
        while (start < end) {
            int mid = start + (end-start) / 2;  //这个分法非常有讲究
            if (!isBadVersion(mid)) start = mid + 1;
            else end = mid;            
        }        
        return start; 
    }
    private boolean isBadVersion(int mid) {
        // TODO Auto-generated method stub
        return false;
    }
原文地址:https://www.cnblogs.com/zmyvszk/p/5619364.html