Programming/leetcode
1148. Longest Harmonious Subsequence
홍열
2021. 2. 4. 23:51
728x90
문제 그대로 써보면 최소값과 최대값이 차이가 1이 나는 모음을 조화로운 배열이라고 한다.
Input: nums = [1,3,2,2,5,2,3,7]
Output: 5
Explanation: The longest harmonious subsequence is [3,2,2,2,3].
Collections.Count로 출현 횟수를 세고, nums를 for문으로 돌면서 자기 자신을 최소값으로 하고
자신 +1을 최대값으로 가정해서 max값을 출력하면 된다.
def findLHS(self, nums: List[int]) -> int:
dic = collections.Counter(nums)
cnt = 0
for num in nums:
# num이 최솟값이고 +1 나는게 최댓값
if num+1 in dic.keys():
cnt = max(cnt, dic[num] + dic[num+1])
return cnt
솔루션에는 brute-force방법도 있고, 나처럼 해쉬를 사용하는 방법도 있었다.
충분히 생각하고, 손으로 그려보고 하니까 한번에 코딩하고 한번에 submit 받았다.
기분이 좋구나,