题解 | #最长无重复子数组#
最长无重复子数组
http://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4
class Solution {
public:
/**
*
* @param arr int整型vector the array
* @return int整型
*/
int maxLength(vector<int>& arr) {
// write code here
if(arr.size()<=1){
return arr.size();
}
int max_size = 0;
map<int,int> arr_map;
int now_head = 0;
for(int i=0;i<arr.size();i++){
if(arr_map.find(arr[i])!=arr_map.end()){
if(arr_map.size()>max_size){
max_size = arr_map.size();
}
int new_head = arr_map[arr[i]]+1;
for(int j=now_head;j<new_head;j++){
arr_map.erase(arr[j]);
}
now_head = new_head;
}
arr_map[arr[i]] = i;
}
if(arr_map.size()>max_size){
max_size = arr_map.size();
}
return max_size;
}
}; 