278. First Bad Version
2016-06-01 15:06
127 查看
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
Analysis:
注意有可能第一个就是坏版本。
Source Code(C++):
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.
Analysis:
注意有可能第一个就是坏版本。
Source Code(C++):
#include <iostream> #include <vector> #include <cmath> #include <string> using namespace std; // Forward declaration of isBadVersion API. bool isBadVersion(int version); class Solution { public: int firstBadVersion(int n) { if (n<2){ return 1; } if (isBadVersion(1)){ return 1; } if (!isBadVersion(n)){ //全为好版本 return 0; } int head=1, tail=n; //认为head是好,tail是坏版本 while(tail-head>1) { int mid=(tail-head)/2+head; if (isBadVersion(mid)){ tail=mid; } else { head=mid; } } return tail; } }; int main() { Solution sol; cout << sol.firstBadVersion(1); cout << sol.firstBadVersion(2); cout << sol.firstBadVersion(10); return 0; } bool isBadVersion(int version) { if (version>1){ return true; } else { return false; } }
相关文章推荐
- 电脑卡顿的终极奥义
- 使用nslookup定位权威域名服务器得到权威应答
- Drupal Commerce alter checkout form and custom validate
- Java之反射机制
- Codeforces Round #352 (Div. 2) D. Robin Hood
- fszipx.exe
- ObjC的Block中使用weakSelf/strongSelf @weakify/@strongify
- 【整理】jQuery知识点4
- ul+li实现类似table的自适应宽度布局
- C#文件下载(实现断点续传)
- AWT入门 Frame篇
- 如何使 maven+jetty运行时不锁定文件
- Centos7 Firewalld 自定义富规则
- Android:安卓Touch事件分发机制
- 【整理】jQuery知识点3
- Unique Binary Search Trees
- UITableView优化——UITableViewCell高度的优化
- javascript 中的console.log的作用
- 团队第二次冲刺08(6.01)
- Hibernate基础学习(九)—9999