import java.util.*;
public class Solution {
/**
*
* @param arr int整型一维数组 the array
* @return int整型
*/
public int maxLength (int[] arr) {
// write code here
int len = arr.length;
if(len <= 1){
return len;
}
// 双指针
int p = 0;
int q = 0;
int max = 0;
HashMap<Integer, Integer> map = new HashMap<>();
while(q!=len && p!=len){
if(map.containsKey(arr[q])){
if(max < map.keySet().size()){
max = map.keySet().size();
}
map = new HashMap<>();
p++;
// 重新定位双指针位置
q = p;
}
map.put(arr[q], 0);
q++;
}
return max == 0 ? len: max;
}
}