力扣日記 596 最長和諧子串行 雜湊

2021-10-03 20:18:58 字數 805 閱讀 7657

和諧陣列是指乙個陣列裡元素的最大值和最小值之間的差別正好是1。

現在,給定乙個整數陣列,你需要在所有可能的子串行中找到最長的和諧子串行的長度。

!子串行就是包含在陣列中,不需要相連,但不能改變陣列元素順序的子陣列。

class

solution

:def

findlhs

(self, nums: list[

int])-

>

int:

d=for i in nums:

d[i]

=d.get(i,0)

+1ls=

list

(d.items())

ls.sort(

)# print(ls)

max=

0for idx in

range

(len

(ls)-1

):if ls[idx][0

]==ls[idx+1]

[0]-

1:max=

max(max,ls[idx][1

]+ls[idx+1]

[1])

return max

用字典計數,將字典化作列表:ls=list(d.items()),排序,然後遍歷求和即可。

執行用時 :412 ms, 在所有 python3 提交中擊敗了48.55%的使用者

記憶體消耗 :15.8 mb, 在所有 python3 提交中擊敗了5.66%的使用者

最長和諧子串行

和諧陣列是指乙個陣列裡元素的最大值和最小值之間的差別 正好是 1 現在,給你乙個整數陣列 nums 請你在所有可能的子串行中找到最長的和諧子串行的長度。陣列的子串行是乙個由陣列派生出來的序列,它可以通過刪除一些元素或不刪除元素 且不改變其餘元素的順序而得到。示例 1 輸入 nums 1,3,2,2,...

594 最長和諧子串行

題目描述 和諧陣列是指乙個陣列裡元素的最大值和最小值之間的差別正好是1。現在,給定乙個整數陣列,你需要在所有可能的子串行中找到最長的和諧子串行的長度。示例 1 輸入 1,3,2,2,5,2,3,7 輸出 5 原因 最長的和諧陣列是 3,2,2,2,3 說明 輸入的陣列長度最大不超過20,000.方法...

594 最長和諧子串行

和諧陣列是指乙個陣列裡元素的最大值和最小值之間的差別正好是1。現在,給你乙個整數陣列nums,請你在所有可能的子串行中找到最長的和諧子串行的長度。陣列的子串行是乙個由陣列派生出來的序列,它可以通過刪除一些元素或不刪除元素 且不改變其餘元素的順序而得到。示例 1 輸入 nums 1,3,2,2,5,2...