leetcode

简单交互二分查找

35. 搜索插入位置
704. 二分查找

方法1 暴力解法

  1. var solution = function (isBadVersion) {
  2. return function (n) {
  3. let start = 1;
  4. while (start <= n) {
  5. if (isBadVersion(start)) return start;
  6. start++;
  7. }
  8. };
  9. };

image.png

方法2 二分查找

var solution = function (isBadVersion) {
  return function (n) {
    let l = 1, r = n;
    while (l < r) {
      const mid = ((r - l) >> 1) + l;
      if (isBadVersion(mid)) r = mid; // 错误版本
      else l = mid + 1;
    }
    return l;
  };
};

image.png

278. 第一个错误的版本 - 图3