First Bad Version LeetCode solution in JavaScript

1
/**
2
* Definition for isBadVersion()
3
*
4
* @param {integer} version number
5
* @return {boolean} whether the version is bad
6
* isBadVersion = function(version) {
7
* ...
8
* };
9
*/
10

11
/**
12
* @param {function} isBadVersion()
13
* @return {function}
14
*/
15
var solution = function (isBadVersion) {
16
/**
17
* @param {integer} n Total versions
18
* @return {integer} The first bad version
19
*/
20
return function (n) {
21
let ceiling = n;
22
let floor = 1;
23
let firstBadVersion = -1;
24

25
while (floor <= ceiling) {
26
const middle = Math.floor((ceiling + floor) / 2);
27

28
if (isBadVersion(middle)) {
29
firstBadVersion = middle;
30
ceiling = middle - 1;
31
} else {
32
floor = middle + 1;
33
}
34
}
35

36
return firstBadVersion;
37
};
38
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0