leetcode-278-第一个错误的版本

[题目描述]

[题目链接]

leetcode题目链接

[github地址]

代码链接

[思路介绍]

思路一:二分查找

  • 整体流程比较简单,就找到版本为第一个false的就可以
  1. //思路一:暴力就不写了直接遍历就可以
  2. //思路二:典型的二分查找问题
  3. public int firstBadVersion(int n) {
  4. int l = 1, r = n;
  5. while (l < r) {
  6. int mid = (r - l) / 2 + l;
  7. if (isBadVersion(mid)) {
  8. r = mid;
  9. } else {
  10. l = mid + 1;
  11. }
  12. }
  13. return l;
  14. }

时间复杂度O(lgn)