algorithm
594. Longest Harmonious Subsequence
식피두
2020. 8. 31. 00:26
https://leetcode.com/problems/longest-harmonious-subsequence/
Longest Harmonious Subsequence - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
450ms
import collections
class Solution:
def findLHS(self, nums: List[int]) -> int:
if len(nums) < 1:
return 0
if len(set(nums)) == 1:
return 0
uniq_nums = set(nums)
memo = collections.defaultdict(int)
res = 0
for idx, num in enumerate(nums):
if num-1 in uniq_nums:
_key = '{}-{}'.format(num-1, num)
memo[_key] += 1
res = max(res, memo[_key])
if num+1 in uniq_nums:
_key = '{}-{}'.format(num, num+1)
memo[_key] += 1
res = max(res, memo[_key])
return res
simplify
300ms
class Solution:
def findLHS(self, A):
count = collections.Counter(A)
ans = 0
for x in count:
if x+1 in count:
ans = max(ans, count[x] + count[x+1])
return ans