/** * 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 */ returnfunction(n) { let min = 0; let max = n; let v = Math.round(n / 2); while(true) { if (isBadVersion(v) && !isBadVersion(v - 1)) break; if (!isBadVersion(v)) { min = v; max = n; }else { max = v; } v = Math.round((max - min) / 2) + min; } return v; }; };