滑动窗口 双指针
假如map一直没有重复的数字 右指针一直右移
遇到重复数字 找到重复数字的位置+1 注意是左边当中最大的位置
public class Solution {
/**
*
* @param arr int整型一维数组 the array
* @return int整型
*/
public int maxLength (int[] arr) {
// write code here
int len = arr.length;
if (arr == null || len == 0){
return 0;
}
int left = 0;
HashMap<Integer,Integer> map = new HashMap<>();
int maxLen = 0;
for (int right = 0; right <len ; right++) {
if (map.containsKey(arr[right])){
int temp = map.get(arr[right])+1;
left = Math.max(left,temp);
}
maxLen = Math.max(maxLen,right-left+1);
map.put(arr[right], right);
}
return maxLen;
}
}