1.双指针法。

#define MAXNUM 1
class Solution {
public:
    /**
     * 
     * @param arr int整型vector the array
     * @return int整型
     */
    int maxLength(vector<int>& arr) {
        // write code here
        map<int,int> mark = map<int,int>();
        int res = 0,current=0;
        int start=-1,end=0;
        for(int end=0;end<arr.size();end++) {
            int elem = arr[end];
            if(mark.find(elem)!=mark.end()) {
                mark[elem]++;
            }else{
                mark[elem] = 1;
            }
            while(mark[elem]>MAXNUM) {
                start += 1;
                int elem_start = arr[start];
                mark[elem_start] -= 1;
            }
            res = max(res,end-start);
        }
        return res;
    }
};