题解 | #最长无重复子数组#
最长无重复子数组
http://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4
class Solution {
public:
int maxLength(vector<int>& arr) {
int len = arr.size();
if(len<=1) return len;
int maxLen = 1;
set<int> S;
int left = 0, right = 0;
for(; right<len; right++) {
while(S.find(arr[right]) != S.end()) {
// 当集合 S中存在 arr[right]时,以数组 arr为依据,从left开始擦除,一直擦到S中没有arr[right]为止
S.erase(arr[left++]);
}
S.insert(arr[right]);
maxLen = max(maxLen, right-left+1);
}
return maxLen;
}
}; 


查看20道真题和解析