滑动窗口思想
public int maxLength (int[] arr) { // write code here Map<Integer, Integer> map = new HashMap<>(); int res = 0; // 表示窗口的最左侧 int left = 0; for (int i = 0; i < arr.length; i++) { if (map.containsKey(arr[i])) { // 如果遇到重复元素,更新窗口大小 left = Math.max(left, map.get(arr[i]) + 1); } map.put(arr[i], i); res = Math.max(res, i - left + 1); } return res; }