和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。
现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。
示例 1:
输入: [1,3,2,2,5,2,3,7] 输出: 5 原因: 最长的和谐数组是:[3,2,2,2,3].
class Solution:
def findLHS(self, nums: List[int]) -> int:
d = {}
for i in nums:
if i in d:
d[i] += 1
else:
d[i] = 1
res = []
for i in d:
if i + 1 in d:
res.append(d[i]+d[i+1])
if not res:
return 0
return max(res)
class Solution:
def findLHS(self, nums: List[int]) -> int:
d = {}
for i in nums:
d[i] = d.get(i,0) + 1
cnt = 0
for i in d:
if i + 1 in d and d[i] + d[i+1] > cnt:
cnt = d[i] + d[i+1]
return cnt