import java.util.*;


public class Solution {
    /**
     * 
     * @param arr int整型一维数组 the array
     * @return int整型
     */
    public int maxLength (int[] arr) {
        // write code here
        if(arr.length == 0){
            return 0;
        }
        if(arr.length == 1){
            return 1;
        }
        //用来存放当前动态计算的的数
        ArrayList<Integer> curlist = new ArrayList<>();
        //用来存放当前最长无重复的数
        ArrayList<Integer> maxlist = new ArrayList<>();
        curlist.add(arr[0]);
        maxlist.add(arr[0]);
        for(int i = 1;i<arr.length;i++){
            if(curlist.contains(arr[i])){
                //已经包含了 就把之前的舍弃掉
                Iterator<Integer> it =  curlist.iterator();
                while(it.hasNext()){
                    if(it.next() == arr[i]){
                        it.remove();
                        break;
                    } else {
                        it.remove();
                    }
                }
            } 
            curlist.add(arr[i]);
            //和maxList比较哪个长保留哪个
            if(maxlist.size() < curlist.size()){
                maxlist.clear();
                maxlist.addAll(curlist);
            }
        }
        return maxlist.size();
    }
}