取数组中点时不要写 int mid = (left + right) // 2;,「这么写有一个问题:数值越界,例如left和right都是最大int,这么操作就越界了,在二分法中尤其需要注意!」
int mid = (left + right) // 2;
所以可以这么写:int mid = left + ((right - left) // 2);
int mid = left + ((right - left) // 2);