思路:双指针
1.一个指针start指向当前不重复队列的头,一个指针end指向当前不重复队列的尾部。
1)若arr[end]与当前队列重复了,则start向后移动一位,并把arr[start]从当前队列删除。
2)不重复
1)重新计算最大长度maxlen
2)end++;
3)把arr[end]加入到当前队列中
注意:队列的作用
1)一个装载当前不重复数的链表
2)使用contains()方法判断arr[end]是否与当前队列重复。

public int maxLength (int[] arr) {
        // write code here
        int start=0;
        int end=1;
        int maxlen=1;
        LinkedList<Integer> list=new LinkedList<>();
        list.add(arr[0]);
        while(end<arr.length){
            if(!list.contains(arr[end])){
                list.addLast(arr[end]);
                maxlen=(end-start+1)>maxlen?(end-start+1):maxlen;
                end++;
            }
            else{
                list.removeFirst();
                start++;
            }
        }
        return maxlen;
    }