Skip to main content

704.二分查找

// [left,right] 左闭右闭区间
const search = (nums, target) => {
let left = 0
let right = nums.length - 1
while (left <= right) {
const mid = left + Math.floor((right - left) / 2)
if (nums[mid] > target) {
right = mid - 1 // 去左面闭区间寻找
} else if (nums[mid] < target) {
left = mid + 1 // 去右面闭区间寻找
} else {
return mid
}
}
return -1
}
// [left,right) 左闭右开区间
const search = (nums, target) => {
let left = 0, right = nums.length;
while (left < right) {
let mid = left + Math.floor((right - left)/2);
if (nums[mid] > target) {
right = mid; // 去左区间寻找
} else if (nums[mid] < target) {
left = mid + 1; // 去右区间寻找
} else {
return mid;
}
}
return -1;
};