二分查找【LC 704题】
我们一般定义查找区间的时候,要么是左闭右开[left,right),要么是左闭右闭[left,right]。
在修改区间范围的时候,一定要坚持这个区间的开闭准则
- 左闭右闭[left,right]的写法
package Array;
public class Search {
//左闭右闭写法
public int search(int[] nums, int target) {
int left=0,right=nums.length-1;
while (left<=right){ //注意点一:由于是左闭右闭区间,所以当left=right时,区间内还有元素
int mid=(left+right)/2;
if (nums[mid]==target) return mid;
// 注意点二 如果mid不符合条件,从区间内剔除
else if (nums[mid]>target) right=mid-1;
else left=mid+1;
}
return -1;
}
}
大约 14 分钟