Skip to content

Latest commit

 

History

History
48 lines (32 loc) · 1.33 KB

594-longest-harmonious-subsequence.md

File metadata and controls

48 lines (32 loc) · 1.33 KB

594. Longest Harmonious Subsequence - 最长和谐子序列

和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。

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

示例 1:

输入: [1,3,2,2,5,2,3,7]
输出: 5
原因: 最长的和谐数组是:[3,2,2,2,3].

说明: 输入的数组长度最大不超过20,000.


题目标签:Hash Table

题目链接:LeetCode / LeetCode中国

题解

Language Runtime Memory
python3 148 ms N/A
class Solution:
    def findLHS(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        res = 0
        cnt = sorted(list(collections.Counter(nums).items()), key=lambda x: x[0])
        for i in range(len(cnt)-1):
            if abs(cnt[i][0] - cnt[i+1][0]) == 1:
                res = max(res, cnt[i][1] + cnt[i+1][1])
        return res