/*****************************************************问题描述*************************************************
You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest
version of your product fails the quality check. Since each version is developed based on the previous version, all the versions after a bad version are also bad.
Suppose you have n versions [1, 2, ..., n] and you want to find out the first bad one, which causes all
the following ones to be bad.
You are given an API bool isBadVersion(version) which will return whether version is bad. Implement a function
to find the first bad version. You should minimize the number of calls to the API.
Example:
Given n = 5, and version = 4 is the first bad version.
call isBadVersion(3) -> false
call isBadVersion(5) -> true
call isBadVersion(4) -> true
Then 4 is the first bad version.
找到第一返回false,下一个返回true的那个索引
/*****************************************************我的解答*************************************************
//二分查找
/**
* @param {function} isBadVersion()
* @return {function}
*/
var solution = function(isBadVersion) {
/**
* @param {integer} n Total versions
* @return {integer} The first bad version
*/
return function(n) {
var start = 1;
var end = n;
while(start <= end)
{
var curPos = parseInt((start + end) / 2);
if(isBadVersion(curPos))
{
end = curPos;
}
else
{
start = curPos + 1;
}
if(start == end && start == curPos)
{
break;
}
}
return curPos;
};
};
leetCode刷题记录40_278_First Bad Version
最新推荐文章于 2023-09-17 21:54:28 发布