First Bad Version
来源:互联网 发布:windows软件清理大师 编辑:程序博客网 时间:2024/06/18 11:47
题目:
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 whetherversion
is 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; int right=n; int cur; while(left<right) { cur=(right-left)/2+left; if(isBadVersion(cur)&&((cur-1)>0)&&(!isBadVersion(cur-1))) { return cur; } if(isBadVersion(cur)) { right=cur-1; continue; } if(!isBadVersion(cur)&&((cur+1)<=n)&&(isBadVersion(cur+1))) { return cur+1; } if(!isBadVersion(cur)) { left=cur+1; continue; } } if(isBadVersion(left)) { return left; } else { return right; } }};
0 0
- [刷题]First Bad Version
- first bad version
- First Bad Version
- [leetcode]First Bad Version
- First Bad Version
- LeetCode First Bad Version
- [leetcode] First Bad Version
- 278 First Bad Version
- First Bad Version
- [Leetcode]First Bad Version
- Leetcode: First Bad Version
- leetcode First Bad Version
- LeetCode || First Bad Version
- [leetcode]First Bad Version
- Leetcode: First Bad Version
- First Bad Version
- #leetcode#First Bad Version
- First Bad Version
- 大数据量下高并发同步的讲解
- PuTTY + Xming
- mybatis笔记-基础
- 关于如何在java中实现中文首字母索引排序的问题
- Linux安装
- First Bad Version
- list ,set,map 三中类型的集合那些能存放null类型的值
- 操作系统原理Linux篇 读书笔记(2)——Linux进程管理
- ios代理模式
- Android基础第一篇
- linux 下非阻塞客户端,服务器代码
- 沐风课堂“彩虹系列”for 3dsMax工具软件推荐(图)
- Windows中GIT 安装
- Android WebView网页自适应手机屏幕