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)