采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
(l + r) / 2转换成l + (r -l)/2 是考虑到l + r相加的时候溢出,那l/2 + r/2不就可以了?
因为计算机的运算是整数除法,所以 (l + r) / 2 和 l / 2 + r / 2 可能不等价。
比如 l = 3, r = 21。
(l + r) / 2 = (21 + 3) / 2 = 24 / 2 = 12;
l + (r - l) / 2 = 3 + (21 - 3) / 2 = 3 + 18 / 2 = 3 + 9 = 12;
l / 2 + r / 2 = 3 / 2 + 21 / 2 = 1 + 10 = 11
继续加油!:)
原来这样...666
之前在leetcode就遇到这个问题,一直没想明白,原来是这样,感谢老师!
波波老师,难道就是因为不等价,所以就不能这样用吗??
登录后可查看更多问答,登录/注册
课程专为:短时间内应对面试、升职测评等艰巨任务打造
8.7k 21
5.7k 3
4.8k 5
1.3k 18