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

最长无重复子数组

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()==0)
        {
            return 0;
        }
        
        unordered_map<int, int>uMap;
        int nMax=0;
        int nIndex=0;
        for(int i=0; i< arr.size();i++)
        {
            auto it=uMap.find(arr[i]);
            if(it == uMap.end())
            {
                uMap[arr[i]]=i;
            }
            else
            {
                if(nMax < (i - nIndex))
                {
                    nMax=i-nIndex;
                }
                
                i=it->second;
                nIndex=it->second+1;
                uMap.clear();
                
            }
        }
        if(nMax == 0 )
        {
            nMax=arr.size();
        }
        return nMax;
    }
};
全部评论

相关推荐

铁锈不腻玩家:下面那个袁先生删了,问他怎么回事,头像都换不明白
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务