278. First Bad Version

/* The isBadVersion API is defined in the parent class VersionControl.
      public function isBadVersion($version){} */

class Solution extends VersionControl {
    /**
     * @param Integer $n
     * @return Integer
     */
    function firstBadVersion($n) {
        $start = 1;
        while($start < $n) {
            $middle = (int)floor($start + ($n - $start) / 2);
            if ($this->isBadVersion($middle)) {
                $n = $middle;
            } else {
                $start = ++$middle;
            }
        }

        return $n;
    }
}

Last updated