题解 | #最长无重复子串#
最长无重复子串
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 res=0; int i=0,j=0; unordered_map<int,int> hashmap; for(;i<arr.size();i++){ if(hashmap.count(arr[i])){ if(j<hashmap[arr[i]]+1) j=hashmap[arr[i]]+1; //注意:这里一定要取最大的start,不然就错误了 //为什么? 因为重复数字的索引很可能比start小 hashmap[arr[i]]=i; } hashmap.insert({arr[i],i}); if(res<i-j+1) res=i-j+1; } return res; } };