算法练习--二分算法
1.
问:为什么要写 left + (right - left) / 2?
答:在面试或者实际场景中,你不一定知道输入的数组有多长,万一数组长度达到 int 最大值,left + right 可能会发生加法溢出。当然,如果只看本题的数据范围,写 (left + right) / 2 也可以。对于 Python 来说,由于没有溢出这个概念,所以可以直接相加。
2.
拓展:为什么python 没有溢出的概念
答:python的整数类型是动态内存,但是float类型是64位固定的精度的,float类型会导致溢出。
3.
二分算法尤其要注意区间的问题,有的是闭区间、有的是开区间、有的是半开半闭区间

浙公网安备 33010602011771号