1148. 最长和谐子序列

1148. 最长和谐子序列

中文English

我们将一个和谐数组定义为是其最大值和最小值之间的差值恰好为1的数组。

现在,给定一个整数数组,您需要在其所有可能的子序列中找到其最长的和谐子序列的长度。

样例

输入:[1,3,2,2,5,2,3,7]
输出:5
解释:最长的和谐子序列是[3,2,2,2,3]。

注意事项

输入数组的长度不会超过20,000。

##最长和谐子序列
class Solution:
    ''' 
    大致思路:
    1.初始化s=0,循环nums,每次进行判断nums.count(i) + nums.count(i+1)和s的大小,如果大于的话,则s重新被赋值,最后返回s即可
    '''
    def findLHS(self,nums):
        s = 0
        dic = []
        for i in nums:
            if i not in dic:
                dic.append(i)
                c = nums.count(i) + nums.count(i+1)
                if c > s:
                    s = c
        return s