-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsolution.js
37 lines (35 loc) · 843 Bytes
/
solution.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// description: https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/8/sorting-and-searching/53/
// 第一个错误的版本
/**
* 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) {
var low = 0;
var high = n - 1;
var mid;
while (low < high) {
mid = Math.floor((high - low) / 2) + low;
if (isBadVersion(mid)) {
high = mid - 1;
} else {
low = mid + 1;
}
}
return isBadVersion(low) ? low : low + 1;
};
};