题意:在一个一维Version[1,2,...,n]中,BadVersion i 将会导致Version[i,i+1,...n]都为BadVersion,找出第一个BadVersion.
分析:简单的二分查找,注意数组下表可能溢出。
代码:
// Forward declaration of isBadVersion API.
bool isBadVersion(int version);
class Solution {
public:
int firstBadVersion(int n) {
int left=1;
int right=n;
while(left<=right){
int mid=left+(right-left)/2;
if(isBadVersion(mid)) right=mid-1;
else left=mid+1;
}
return left;
}
};
本文介绍了一个经典的二分查找算法应用实例——寻找首个坏版本。在一系列版本中,一旦出现坏版本,之后的所有版本均为坏版本。文章通过简洁的C++代码实现了解决方案,并特别提醒了注意数组下标可能的溢出问题。
204

被折叠的 条评论
为什么被折叠?



