Wednesday, January 17, 2018

LC 278. First Bad Version - LeetCode Facebook BinarySearch

https://leetcode.com/problems/first-bad-version/description/


/* The isBadVersion API is defined in the parent class VersionControl.
boolean isBadVersion(int version); */
public class Solution extends VersionControl {
public int firstBadVersion(int n) {
if (n < 2) {
return n;
}
// core logic
int start = 1;
int end = n;
while(start + 1 < end) {
int mid = (end - start) / 2 + start;
if (isBadVersion(mid)) {
end = mid;
} else {
start = mid;
}
}
if (isBadVersion(start)) {
return start;
} else {
return end;
}
}
}

No comments:

Post a Comment