跳至主要內容

二分法查找下标

Mr.He小于 1 分钟

二分法查找下标

这个问题是面试百度一面的题

假设数组已经排序

双指针实现

function findIndex(arr, target){
  if(arr.length === 0) return -1
  let start = 0, end = arr.length
  let mind = Math.floor(end/2)
  while(start < end){
    if(arr[mind] < target){
      start = mind + 1
      mind = Math.floor((start+end)/2)
    }else if(arr[mind] > target){
      end = mind - 1
      mind = Math.floor((start+end)/2)
    }else{
      return mind
    }
  }
  return -1
}