1、
int mid = l + (r - l) / 2
int mid = l + ((r - l)>>1) 如果/2写成>>1的话,>>的优先级别比较低((r - l)>>1)需要括号。
(l + r)/2
l + r可能会溢出int的最大范围
l + (r - l) / 2
减法替代了加法
l=-200,r=-99时
(l+r)/2=-149
l+(r-l)/2 =-150
(l+r)/2可能溢出,l+(r-l)/2 而不会
1、
int mid = l + (r - l) / 2
int mid = l + ((r - l)>>1) 如果/2写成>>1的话,>>的优先级别比较低((r - l)>>1)需要括号。
(l + r)/2
l + r可能会溢出int的最大范围
l + (r - l) / 2
减法替代了加法
l=-200,r=-99时
(l+r)/2=-149
l+(r-l)/2 =-150
(l+r)/2可能溢出,l+(r-l)/2 而不会
相关文章: