滑动窗口思想
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;
}


京公网安备 11010502036488号