题解 | #最长无重复子数组#
最长无重复子数组
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; } };