双指针 遍历 算法。。。
一般用来遍历 数组 或 字符串 的 对称操作。
for (int min = 0, max = arr.length - 1; min < max; min++, max--) {
// 循环体
}
初始化:
int min = 0, max = arr.length - 1
min:从 数组 开头 开始 (索引0)
max:从 数组 末尾 开始 (最后一个元素的索引)
循环条件:
min < max
当 左指针 小于 右指针 就 继续循环。
两者相遇 或 交叉时 停止。
迭代操作
min++, max--
每次循环后,左指针 向右,右指针 向左。
两者向中间靠拢。
数组反转
public static void reverseArray(int[] arr) {
for (int min = 0, max = arr.length - 1; min < max; min++, max--) {
// 交换首尾元素
int temp = arr[min];
arr[min] = arr[max];
arr[max] = temp;
}
}