二分查找
二分查找的写法(有两种,这里只记录第一种):
如果区间是[a,b],即可以取到low、high,则mid=(low+high)/2:
1.while(low <= high){..},注意此处是" <= "
2.if(v[mid] < target){low ++;}
3.if(v[mid] > target){high --;}
这里条件控制一定要明确:<=、low++、high--。
补充:while(low <= high)而非while(low < high)的原因:这是在闭区间[low,high]查找,右边的high是可以取到的,所以查询条件里要把low==high的也考虑到。
相关:双指针、二分查找、快慢指针、滑动窗口、求2Sum、nSum。