278. First Bad Version
来源:互联网 发布:华道数据招聘 编辑:程序博客网 时间:2024/06/03 22:15
问题链接:https://leetcode.com/problems/first-bad-version/?tab=Description
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 whether version
is bad. Implement a function to find the first bad version. You should minimize the number of calls to the API.
/* The isBadVersion API is defined in the parent class VersionControl. boolean isBadVersion(int version); */public class Solution extends VersionControl { public int firstBadVersion(int n) { int start = 1, end = n; while(start < end) { int mid = start + (end - start)/2; if(isBadVersion(mid)) end = mid; else start = mid+1; } return start; }}
开始时采用递归方式,但是造成栈溢出
Submission Result: Runtime Error More Details
/* The isBadVersion API is defined in the parent class VersionControl. boolean isBadVersion(int version); */public class Solution extends VersionControl { public int firstBadVersion(int n) { return find(1,n); } private int find(int left, int right) { int mid = (left + right) / 2; if(isBadVersion(mid)) { if(!isBadVersion(mid-1)) return mid; else find(left,mid); } else { if(isBadVersion(mid+1)) return mid+1; else find(mid+1,right); } return 0; }}
0 0
- 278. First Bad Version
- 278. First Bad Version
- 278. First Bad Version
- 278. First Bad Version
- 278. First Bad Version
- 278. First Bad Version
- 278. First Bad Version
- 278. First Bad Version
- 278. First Bad Version
- 278. First Bad Version
- 278. First Bad Version
- 278. First Bad Version
- 278. First Bad Version
- 278. First Bad Version
- 278. First Bad Version
- 278. First Bad Version
- 278. First Bad Version
- 278. First Bad Version
- PHP环境搭建(3)——安装MySQL和phpMyAdmin
- [运维]ELK实现日志监控告警
- kaldi 声学模型构建dict过程
- gdbserver + gdb 远程调试
- QApplication 和事件循环
- 278. First Bad Version
- MySQL cast字符串转数字
- html根据复选框勾选顺序生成字符串
- javaScript 的AMD及define模块定义
- 第31篇 一对多自由控制语音(十)及PHP SimpleXML
- 棋牌游戏开发框架Theway 架构篇
- JAVA高级【1.6】《Java核心技术2》流与文件-IO读写大文件
- 实现android的增量更新
- 观察者模式