First Bad Version(leetcode278)
阿新 • • 發佈:2018-12-12
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]
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.
//那麼寫個二分查詢吧 public int firstBadVersion2(int n) { int start=1; int end = n; while (start < end){ int mid = start + (end-start) / 2; if (!isBadVersion(mid)) { start = mid + 1; } else { end = mid; } } return start; }
git:https://github.com/woshiyexinjie/leetcode-xin