关于二分查找的一个坑 :mid = left + (right - left) / 2 和 mid = (left + right) / 2 的 区别
mid = left + (right - left) / 2 和 mid = (left + right) / 2 的 区别本人在刷leetcode时,遇到了二分查找,直接手撕,提交,发现超时(其实是bug),看了题解发现,woc,一样的代码居然我的跑不起来(其实不一样)。跑不起来的原因就是mid = (left + right) / 2 容易溢出!因为left+right很容易超过int范围!而mid = left + (right - left) / 2 不容易溢出,所以建议以后写二分时要用mid
原创
2021-05-02 11:11:54 ·
3457 阅读 ·
0 评论