数据解构和算法

60.二分查找

2022-02-21  本文已影响0人  wo不是黄蓉

day12: 704. 二分查找(简单)
思想和我之前写的有序数组中的单一元素很像可以参考。
二分二分:

var search = function (nums, target) {
  if (!nums.includes(target)) return -1;
  let left = 0,
    right = nums.length - 1;

  while (left < right) {
    let mid = (left + right) >>> 1;
    //target-nums[mid] > 0取值区间在[mid,right],<0取值区间在[mid-left之间]
    if (target - nums[mid] > 0) {
      left = mid + 1;
    }
    if (target - nums[mid] < 0) {
      right = mid - 1;
    }
    if (target - nums[mid] === 0) {
      return mid;
    }
  }
  return right;
};

console.log(search([-1, 0, 3, 5, 9, 12], 2));

上一篇 下一篇

猜你喜欢

热点阅读