Skip to content

278. 第一个错误的版本 #38

Open
@zpc7

Description

@zpc7

278. 第一个错误的版本

/**
 * Definition for isBadVersion()
 * 
 * @param {integer} version number
 * @return {boolean} whether the version is bad
 * isBadVersion = function(version) {
 *     ...
 * };
 */

/**
 * @param {function} isBadVersion()
 * @return {function}
 */
var solution = function (isBadVersion) {
    /**
     * @param {integer} n Total versions
     * @return {integer} The first bad version
     */
    return function (n) {
        let left = 0;
        let right = n;

        while (left < right) {
            let middle = Math.floor((left + right) / 2);
            const isBad = isBadVersion(middle);
            if (isBad) {
                right = middle;
            } else {
                left = middle + 1;
            }
        }
        return left;

    };
};

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions