Two Pointers 判断两个变量的条件一定要用小于
Tow Pointers 通常要使用两个变量 lo, hi 或者 left, right 来从两个方向遍历数组,循环的结束条件一定是 lo < hi,不要用 lo != hi 否则如果 lo 和 hi 均为偶数,那么同时操作会导致 hi 小于 lo 以至于循环溢出
void reverse(int[] A, int lo, int hi) {
while (lo != hi) {
int temp = A[lo];
A[lo] = A[hi];
A[hi] = temp;
lo++;
hi--;
}
}如果输入的 lo = 3, hi = 6 那么会出现异常
正确的方式是 while (lo < hi)