Skip to content

Instantly share code, notes, and snippets.

@rioshen
Last active August 29, 2015 14:16
Show Gist options
  • Save rioshen/1b059e114027ca285049 to your computer and use it in GitHub Desktop.
Save rioshen/1b059e114027ca285049 to your computer and use it in GitHub Desktop.
编程时的小细节

Two Pointers 判断两个变量的条件一定要用小于

Tow Pointers 通常要使用两个变量 lo, hi 或者 left, right 来从两个方向遍历数组,循环的结束条件一定是 lo < hi,不要用 lo != hi 否则如果 lohi 均为偶数,那么同时操作会导致 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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment