-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy path594.LongestHarmoniousSubsequence(Counter).py
49 lines (40 loc) · 1.39 KB
/
594.LongestHarmoniousSubsequence(Counter).py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
'''
We define a harmonious array as an array where the
difference between its maximum value and its minimum
value is exactly 1.
Given an integer array nums, return the length of its
longest harmonious subsequence among all its possible
subsequences.
A subsequence of array is a sequence that can be derived
from the array by deleting some or no elements without
changing the order of the remaining elements.
Example:
Input: nums = [1,3,2,2,5,2,3,7]
Output: 5
Explanation: The longest harmonious subsequence is
[3,2,2,2,3].
Example:
Input: nums = [1,2,3,4]
Output: 2
Example:
Input: nums = [1,1,1,1]
Output: 0
Constraints:
- 1 <= nums.length <= 2 * 10^4
- -10^9 <= nums[i] <= 10^9
'''
#Difficulty: Easy
#206 / 206 test cases passed.
#Runtime: 304 ms
#Memory Usage: 15.8 MB
#Runtime: 304 ms, faster than 71.28% of Python3 online submissions for Longest Harmonious Subsequence.
#Memory Usage: 15.8 MB, less than 93.69% of Python3 online submissions for Longest Harmonious Subsequence.
from collections import Counter
class Solution:
def findLHS(self, nums: List[int]) -> int:
numbers = Counter(nums)
result = 0
for num, count in numbers.items():
if num+1 in numbers:
result = max(result, numbers[num] + numbers[num+1])
return result