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

最长无重复子数组

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

#
# 
# @param arr int整型一维数组 the array
# @return int整型
#
#双指针思路
#1.right-left=无重复整数的长度
#2.如果字典中未出现过的整数-->啥都不做
#3.如果字典中出现过的整数-->更新left   left=max(left,mm[arr[right]])  left和上一次出现的重复整数位置取最大
#4.每次都更新下无重复整数的长度,以及将当前arr[right]值在字典中更新
#list可以调用sort函数(key,reverse=True)
class Solution:
    def maxLength(self , arr ):
        # write code here
        mm=dict()#声明字典
        left=-1
        right=0
        res=0
        length=len(arr)
        while right<length:#右指针从左到右移动
            if arr[right] in mm.keys():
                left=max(left,mm[arr[right]])
            res=max(res,right-left)
            mm[arr[right]]=right
            right+=1
        return res
                
        
        
全部评论

相关推荐

牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
Twilight_m...:经典我朋友XXXX起手,这是那种经典的不知道目前行情搁那儿胡编乱造瞎指导的中年人,不用理这种**
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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