题解 | #最长无重复子数组#
最长无重复子数组
https://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 滑动窗口,双指针 * * @param arr int整型一维数组 the array * @return int整型 */ public int maxLength (int[] arr) { int max = 0; int left = 0; int right = 0; Set<Integer> set = new HashSet<>(); // 不超过最大长度继续 while (right < arr.length) { int num = arr[right]; // 重复了,则移除首相 while (set.contains(num)) { set.remove(arr[left]); // 缩小窗口 left++; } // 未重复,添加结果 set.add(arr[right]); // 更新最大值 max = Math.max(set.size(),max); // 扩大窗口 right++; } return max; } }