/* * 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; }