import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param arr int整型一维数组 the array
     * @return int整型
     */
    public int maxLength (int[] arr) {
        int maxlen=Integer.MIN_VALUE;
        int start = 0;
        int end = 0;
        HashSet set = new HashSet<>();
        for(int i=0;i<arr.length;i++){
            if(!set.contains(arr[i])){
                set.add(arr[i]);
                end++;
                continue;
            }
            maxlen=Math.max(maxlen,end-start);
            while(true){
                if(arr[i]==arr[start]){
                    start++;
                    end++;
                    break;
                }
                set.remove(arr[start++]);
            }
        
        }
        maxlen=Math.max(maxlen,end-start);
        return maxlen;
    }
}