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;
}
};