- 数组的二分查找
- 关键在于在不同情况下对中值的处理
- 当nums[mid] < target 时,说明目标值在右,将左边界移动到mid + 1 的位置
- 同理将右边界移动到mid - 1的位置
class Solution {
public int search(int[] nums, int target) {
int l = 0;
int r = nums.length - 1;
while(l <= r){
int mid = (l + r) / 2;
if(nums[mid] < target){
//注意
l = mid + 1;
}else if(nums[mid] > target){
//注意
r = mid - 1;
}else{
return mid;
}
}
return -1;
}
}