滑动窗口 双指针

假如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;
    }
}