二分细节的处理
本来了解了二分的思路以为自己会了,结果手撕代码的时候发现好多细节的处理不太熟悉。
1.while循环条件何时为right>=left,何时为right>left


2.a[mid]<target时right何时取mid-1何时取mid
还是上面所述闭区间开区间的问题,当闭区间时右边界可以取到,mid已经排除过,故r=mid-1,当开区间时右边界取不到故r=mid
3. mid值最好用 left+(right-1)/2求,因为用(left+tight)/2求时(left+right)的值容易溢出。

浙公网安备 33010602011771号