278. 第一个错误的版本
题目:
思路:
【1】简单的二分
代码展示:
//时间13 ms 击败 94.23% //内存38.1 MB 击败 73.26% /* The isBadVersion API is defined in the parent class VersionControl. boolean isBadVersion(int version); */ public class Solution extends VersionControl { public int firstBadVersion(int n) { // 因为是要从[1-n]中猜 int left = 1, right = n; while (left < right) { // 循环直至区间左右端点相同 //先取中位进行猜 int mid = left + (right - left) / 2; // 防止计算时溢出 // isBadVersion(mid) = true 表示属于错误版本 if (isBadVersion(mid)){ right = mid; }else { left = mid + 1; // 答案在区间 [mid+1, right] 中 } } // 此时有 left == right,区间缩为一个点,即为答案 return left; } }