给定一个数组arr,返回arr的最长无重复元素子数组的长度

这类问题属于滑动窗口问题,定义一个窗口,窗口内为当前无重复元素数组,移动窗口右边界,当下一个元素 ‘x’ 在窗口内时,假设其位置为 'i',记录下此时窗口的长度以及窗口内的数组,滑动窗口左边界到‘i+1’。继续滑动窗口,直到窗口浏览完整个数组。

class Solution:
    def FindMaxLenOfSubStr(self, arr):
        no_repeat = []
        long_num = 0
        long_str = []
        for v in arr:
            if v not in no_repeat:
                no_repeat.append(v)
            else:
                leng = len(no_repeat)
                if leng > long_num:
                    long_num = leng
                    long_str = no_repeat[:]
                index = no_repeat.index(v)
                no_repeat.append(v)
                no_repeat = no_repeat[index+1:]
        return long_num,long_str

上一篇:使用边框和背景


下一篇:Android图形图像相关小知识点整理