题解 | #最长无重复子串#

最长无重复子串

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;
    }
};
全部评论

相关推荐

04-11 15:34
已编辑
华中科技大学 网络安全
疯犬丨哈士奇:意思就是:我们还有其他更优秀的人在等回复,如果他们不要这个机会就会来找你
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务