LeetCode Solutions
278. First Bad Version
Time: $O(\log n)$ Space: $O(1)$
bool isBadVersion(int version);
class Solution {
public:
int firstBadVersion(int n) {
int l = 1;
int r = n;
while (l < r) {
const int m = l + (r - l) / 2;
if (isBadVersion(m))
r = m;
else
l = m + 1;
}
return l;
}
};
public class Solution extends VersionControl {
public int firstBadVersion(int n) {
int l = 1;
int r = n;
while (l < r) {
final int m = l + (r - l) / 2;
if (isBadVersion(m))
r = m;
else
l = m + 1;
}
return l;
}
}
class Solution:
def firstBadVersion(self, n: int) -> int:
l = 1
r = n
while l < r:
m = (l + r) >> 1
if isBadVersion(m):
r = m
else:
l = m + 1
return l