JAVA int 类整数的最大值是 2 的 31 次方 - 1 = Integer.MAX_VALUE
上次写算法的时候遇到一个求中间值的,我开始写的是
int index = (start + end) / 2;
没想到报错了,排查了一下才发现,start + end 的值超出了 Integer.MAX_VALUE,后优化成
int index = start + (end - start) / 2;
JAVA int 类整数的最大值是 2 的 31 次方 - 1 = Integer.MAX_VALUE
上次写算法的时候遇到一个求中间值的,我开始写的是
int index = (start + end) / 2;
没想到报错了,排查了一下才发现,start + end 的值超出了 Integer.MAX_VALUE,后优化成
int index = start + (end - start) / 2;