/**
* @param {number[]} nums
* @param {number} target
* @return {number}
*/
var search = function(nums, target) {
let left = 0;
let right = nums.length - 1;
// 左闭右闭区间,存在left=right的情况
while(left <= right) {
// 计算数组中间位置下标
let middle = left + ((right - left) >> 1);
// 假如值在middle左边,右边界左移,左移后区间不包含nums[middle]
if(target < nums[middle]) {
right = middle - 1;
}else if (target > nums[middle]) { // 假如值在middle右边,左边界右移,右移后区间不包含nums[middle]
left = middle + 1;
}else { // 假如target == nums[middle]
return middle;
}
}
// nums不存在该值
return -1;
};
学好久了,==。