题目
- 二分查找
思路
- 有序、无重复的数组,是二分查找的使用条件
- 二分查找需要注意边界问题:即选定左闭右闭的区间或者左闭右开的区间
解法
class Solution {
private int left,right,middle;
public int search(int[] nums, int target) {
left=0;
right=nums.length-1;
//左闭右闭区间
while(left<=right){
middle=left+(right-left)/2;
if(target > nums[middle]){
left=middle+1;
}
else if(target<nums[middle]){
right=middle-1;
}
else{
return middle;
}
}
//未找到的情况只会是 target大于区间
return -1;
}
}