思路
- 维护一个
窗口
,使得[j, i]
中每个字符只出现一次
- 如果
右端点
的的出现次数大于1
,那么就要让左端点
向右移动,直到右端点的出现次数为1 - 滑动的过程维护
哈希表
class Solution {
public:
/**
*
* @param arr int整型vector the array
* @return int整型
*/
int maxLength(vector<int>& a) {
// write code here
int hash[100010] = {0, };
int res = 0;
for(int i = 0, j = 0; i < a.size(); i ++)
{
hash[a[i]] ++ ;
while(hash[a[i]] > 1){
hash[a[j]] --;
j ++;
}
res = max(res, i - j + 1);
}
return res;
}
};