滑动窗口维护左边界 记录最大值
public int maxLength (int[] arr) {
int left = 0;
int max = -1;
HashMap<Integer ,Integer> map = new HashMap<>();
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);
max = Math.max(max,i-left+1);
}
return max;
}