负数:
当l=-200,r=-99时
(l+r)/2=-149
l+(r-l)/2 =-150
溢出 :
int x = 1999999998;
int y = 1999999998;
int mid = (x+y) / 2;
int mid2 = x + (y-x) / 2;
System.out.println(mid); //-147483650
System.out.println(mid2); //1999999998
中间值溢出,关于取中间值为什么为(right-left)/2+left,而不是(right+left)/2。
最新推荐文章于 2024-08-29 17:00:59 发布