#include <climits>
#include <unordered_map>
#include <unordered_set>
class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param arr int整型vector the array
     * @return int整型
     */
    int maxLength(vector<int>& arr) {
        unordered_set<int> counter;
        int i = -1, j = -1, ans = INT_MIN;
        while (++j < arr.size()) {
            while (counter.insert(arr[j]).second == false) {
                counter.erase(arr[++i]);
            }

            ans = std::max(ans, j - i);
        }

        return  ans;
    }
};