[Leetcode] 278. First Bad Version 解题报告
2017-07-07 16:44
387 查看
题目:
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
You are given an API
bad. Implement a function to find the first bad version. You should minimize the number of calls to the API.
思路:
标准的又一个二分查找法,需要注意边界条件。
代码:
// Forward declaration of isBadVersion API.
bool isBadVersion(int version);
class Solution {
public:
int firstBadVersion(int n) {
int left = 1, right = n;
while (left <= right) {
int mid = left + (right - left) / 2;
if (isBadVersion(mid)) {
right = mid - 1;
}
else {
left = mid + 1;
}
}
return left;
}
};
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
nversions
[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
versionis
bad. Implement a function to find the first bad version. You should minimize the number of calls to the API.
思路:
标准的又一个二分查找法,需要注意边界条件。
代码:
// Forward declaration of isBadVersion API.
bool isBadVersion(int version);
class Solution {
public:
int firstBadVersion(int n) {
int left = 1, right = n;
while (left <= right) {
int mid = left + (right - left) / 2;
if (isBadVersion(mid)) {
right = mid - 1;
}
else {
left = mid + 1;
}
}
return left;
}
};
相关文章推荐
- 【LeetCode】Clone Graph 解题报告
- [leetcode] 247. Strobogrammatic Number II 解题报告
- 【LeetCode】77.Combinations(Medium)解题报告
- 【LeetCode】47.Permutations II(Medium)解题报告
- [Leetcode] 455. Assign Cookies 解题报告
- Leetcode Surrounded Regions 解题报告
- leetcode Combination Sum解题报告
- [leetcode] 76. Minimum Window Substring 解题报告
- 【LeetCode】Length of Last Word 解题报告
- [LeetCode 解题报告]007.Reverse Integer
- LeetCode解题报告 --- Single Number II
- [Leetcode] 63. Unique Paths II 解题报告
- [Leetcode] 604. Design Compressed String Iterator 解题报告
- [Leetcode] 373. Find K Pairs with Smallest Sums 解题报告
- [LeetCode 解题报告]009.Palindrome Number
- [LeetCode] 451. Sort Characters By Frequency 解题报告
- 【LeetCode】609. Find Duplicate File in System 解题报告(Python)
- Leetcode解题报告:268. Missing Number
- [LeetCode]Remove Duplicates from Sorted List解题报告
- [Leetcode] 625. Minimum Factorization 解题报告