LeetCode-Easy部分中标签为 Binary Search 278. First Bad Version
来源:互联网 发布:苹果手机远程抹除数据 编辑:程序博客网 时间:2024/04/30 15:08
原题
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.
代码分析
二分查找应用到第一个坏版本查找上。
代码实现
最需要注意的是溢出!!!mid等要设置为long
public int FirstBadVersion(int n) { long lo = 0; //指向好的版本 long hi = n; //指向坏的版本 long mid; while (hi - lo > 1) { mid = (lo + hi) >> 1; //写为这样就不怕溢出(lo + (hi-lo)/2) if (IsBadVersion(mid)) hi = mid; else lo = mid; } return (int)hi; }
2 0
- LeetCode-Easy部分中标签为 Binary Search 278. First Bad Version
- LeetCode-Easy部分中标签为 Binary Search的所有题目
- LeetCode-Easy部分中标签为 Binary Search 349. Intersection of Two Arrays
- LeetCode-Easy部分中标签为 Binary Search 367. Valid Perfect Square
- LeetCode-Easy部分中标签为 Binary Search 167. Two Sum II
- LeetCode-Easy部分中标签为 Binary Search 441. Arranging Coins
- LeetCode-Easy部分中标签为 Binary Search 349. Intersection of Two Arrays 350. Intersection of Two Arrays II
- LeetCode-Easy部分中标签为Array#35: Search Insert Position
- [leetcode][Binary Search] First Bad Version
- leetcode :Binary Search:First Bad Version(278)
- LeetCode-Easy部分中标签为HashTable的所有题目
- LeetCode-Easy部分中标签为LinkedList的所有题目
- LeetCode-Easy部分中标签为Math的所有题目
- LeetCode-Easy部分中标签为Math 268. Missing Number
- LeetCode-Easy部分中标签为Math 507. Perfect Number
- LeetCode-Easy部分中标签为String的所有题目
- LeetCode-Easy部分中标签为String 20. Valid Parentheses
- LeetCode-Easy部分中标签为String 520. Detect Capital
- 水平集——那些我膜拜过的牛人2
- git 常用命令
- Xcode项目横竖屏切换控件元素无法响应用户操作的原因及解决
- Part06
- 原生APP集成身份证扫描拍照识别SDK
- LeetCode-Easy部分中标签为 Binary Search 278. First Bad Version
- 关于内存地址分配之几个注意事项
- 解决java.lang.NullPointerException: View must not be null!
- [BZOJ]1027 合金
- hdoj-1040-As Easy As A+B(解题报告)
- Part07
- 基数排序算法
- 7种结构型模式之:享元模式(Flyweight)与数据库连接池的原理
- java中线程的理解