nums = [2,5,8,12,16,23,38,56,72,91]target = 23expected 5

Loading 3D view…

Looking for 23

step 1 / 33

Solution

TypeScript · line 1
function binarySearch(nums: number[], target: number): number {
  let lo = 0;
  let hi = nums.length - 1;
  while (lo <= hi) {
    const mid = Math.floor((lo + hi) / 2);
    if (nums[mid] === target) {
      return mid;
    }
    if (nums[mid] < target) {
      lo = mid + 1;
    } else {
      hi = mid - 1;
    }
  }
  return -1;
}