正确答案:
public int firstBadVersion(int n) {
int left = 1;
int right = n;
while(left < right) {
int mid = left + (right - left) / 2;
if(isBadVersion(mid)){
right = mid;
}else{
left = mid+1;
}
}
return left;
}
为什么下面的代码错误
public int firstBadVersion(int n) {
int left = 1;
int right = n;
int resMid = 0;
while(left <= right){
int mid = left + (right - left) / 2;
if(isBadVersion(mid)){
resMid = mid;
right = mid--;
}else{
left = mid++;
}
}
return resMid;
}