LeetCode-python 594.最長和諧子序列

題目鏈接
難度:簡單 ??????類型:


和諧數(shù)組是指一個數(shù)組里元素的最大值和最小值之間的差別正好是1。

現(xiàn)在,給定一個整數(shù)數(shù)組,你需要在所有可能的子序列中找到最長的和諧子序列的長度。

示例

輸入: [1,3,2,2,5,2,3,7]
輸出: 5
原因: 最長的和諧數(shù)組是:[3,2,2,2,3].

解題思路


統(tǒng)計每個數(shù)字的個數(shù),用哈希表保存,其中key是i,value是i的個數(shù)
遍歷哈希表,找出i和i+1最多的個數(shù),其中i在哈希表中,當(dāng)i+1不在哈希表時,該組合的總個數(shù)為0

代碼實現(xiàn)

from collections import Counter
class Solution:
    def findLHS(self, nums: List[int]) -> int:
        nums = Counter(nums)
        max_len = 0
        for i in nums:
            max_len = max(max_len, nums[i]+nums[i+1] if nums[i+1] else 0)
        return max_len

本文鏈接:http://www.itdecent.cn/p/ffb9ef8bee53

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容