LeetCode First Bad Version 二分法
来源:互联网 发布:星河战队3 知乎 编辑:程序博客网 时间:2024/06/04 01:09
思路:
二分法。
注意找中间的元素一定要用:
mid = left + (right - left) / 2;
而不能用:(因为可能溢出)
mid = (left + right) / 2;
时间复杂度:O(lgN),空间复杂度:O(1)。
java code:
/* The isBadVersion API is defined in the parent class VersionControl. boolean isBadVersion(int version); */public class Solution extends VersionControl { public int firstBadVersion(int n) { if(n <= 0) return 0; int start = 1, end = n; while(start < end) { int mid = start + (end - start) / 2; if(!isBadVersion(mid)) { start = mid + 1; }else { end = mid; } } return end; }}
0 0
- LeetCode First Bad Version 二分法
- [LeetCode-278] 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
- LeetCode || 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
- [LeetCode]First Bad Version
- leetcode-First Bad Version
- [LeetCode]First Bad Version
- 简单画板的制作
- 不相交集ADT(联机算法 + 脱机算法)
- 多线程
- hadoop+hbase+hive+pig的部署实践
- poj1017 水
- LeetCode First Bad Version 二分法
- 关于洗牌算法的一点总结
- CV创业前景一点看法
- Python入门篇之函数
- 【SSH项目实战】国税协同平台-19.信息发布管理完善&ueditor文本编辑插件
- 写给Linux内核新手-关于Linux内核学习的误区
- CodeForcesGym 100733G No Negations
- htm基础学习篇---语法基础
- 野人学Android第二弹——自定义ListView第一课