- 博客(3)
- 收藏
- 关注
原创 细说二分查找之边界问题
在来看这个例子,这是用二分查找来找到大于num的最左边的值,这个值可以是num,也可以是大于num的某个值,而且它必然存在(当然默认的前提条件是arr[arr.length-1]>=num),故其实没必要对每一个值进行判断,只需要把arr.length-2个值排除掉,剩余的那一个即为所求值,这就是(l<r)不加等号的原因。如果(l<r),则必有(l=mid+1),对r无直接要求.(其实也有一个前提条件是mid=l+(l+r)/2而不是mid=l+(l+r+1)/2,否则就会对r来进行-1的更新了).
2023-03-11 17:42:20 291
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人