class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param arr int整型vector the array
     * @return int整型
     */
    int maxLength(vector<int>& arr) {
        // write code here
        // 双指针
        int left=0, right=0;

        unordered_set<int> u_s;
        int ans = 0;
        while(right<arr.size())
        {
            if(u_s.count(arr[right])>0)
            {
                ans = max(ans, right-left);
                ++left;
                right = left;
                u_s.clear();
            }
            
            u_s.emplace(arr[right]);
            ++right;
        }

        // 处理最后一个子数组
        ans = max(ans, right-left);

        return ans;
    }
};