278. First Bad Version

time: O(logn)

space: O(1)

/* The isBadVersion API is defined in the parent class VersionControl.
      boolean isBadVersion(int version); */

public class Solution extends VersionControl {
    public int firstBadVersion(int n) {
        // true true bad
        int start = 1;
        int end = n;
        
        while (start < end) {
            int mid = (start + end) >>> 1;
            boolean isBad = isBadVersion(mid);
            if (isBad) {
                end = mid;
            } else {
                start = mid + 1;
            }
        }
        return start;
    }
}

latest version!

or like this

Last updated

Was this helpful?