当前位置: 代码迷 >> 综合 >> 二分查找中mid值的计算方法
  详细解决方案

二分查找中mid值的计算方法

热度:79   发布时间:2024-02-01 07:33:28.0

今天在刷leetcode中用到了二分查找,答案中给的是

int mid = (right - left)/2 + left;

我自己写的是

int mid = (left + right) / 2;

测试结果是,我的没通过,超时了,第一种则通过了,后来上网查了一下:

如果用mid=(left+right)/2,在运行二分查找程序时可能溢出超时。

因为如果left和right相加超过int表示的最大范围时就会溢出变为负数。

所以如果想避免溢出,不能使用mid=(left+right)/2,应该使用mid=left+(right-left)/2

不知道有没有关系,总之以后用到二分查找的话则使用第一种方式了

  相关解决方案