题解 | #最长无重复子数组#

最长无重复子数组

http://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4

//滑动窗口,用哈希表记录当前窗口出现的字符,有重复字符出现时,缩小窗口(即增大窗口左边界),直至无重复

class Solution {
public:
    int maxLength(vector<int>& arr) {
        int n=arr.size();
        unordered_set<int> mark;
        int ans=0;
        int left=0;
        int right=0;
        for(;right<n;++right)
        {
            if(mark.count(arr[right]))
            {
                ans=max(ans,right-left);
                while(left<right&&mark.count(arr[right]))
                {
                    mark.erase(arr[left]);
                    ++left;
                }
            }
            mark.insert(arr[right]);
        }
        return ans=max(ans,right-left);
    }
};
全部评论

相关推荐

05-29 22:11
门头沟学院 Java
Elastic90:抛开学历造假不谈,这公司的招聘需求也挺怪的,Java开发还要求你有图文识别、移动端开发和c++的经验,有点逆天了。
点赞 评论 收藏
分享
06-12 16:23
已编辑
小米_软件开发
点赞 评论 收藏
分享
07-23 14:04
东北大学 C++
既然这样,为什么不点击就送呢
牛马88号:因为你合适。但有很多笔试就挂了、通过了再排序的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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