- 문제 링크: https://leetcode.com/problems/longest-consecutive-sequence/
- 난이도: Medium
주어진 숫자 배열에서 가장 긴 연속적인 수열 길이를 구하는 문제다
O(n) 시간복잡도만 가능하기 때문에 정렬은 하지 못하고, 해시를 써야 한다
숫자를 하나 뽑아서, n-1이 있는지 확인하고(있으면 수열의 시작이 아님), 그 다음부터 1씩 올려가며 최대 길이를 재면 된다
class Solution:
def longestConsecutive(self, nums: List[int]) -> int:
numSet = set(nums)
longest = 0
for n in numSet:
if (n-1) in numSet:
continue
length = 1
while (n + length) in numSet:
length += 1
longest = max(longest, length)
return longest
반응형
'Online Judge > LeetCode' 카테고리의 다른 글
[LeetCode][Python] 167. Two Sum II - Input Array Is Sorted (0) | 2024.09.08 |
---|---|
[LeetCode][Python] 125. Valid Palindrome (0) | 2024.09.08 |
[LeetCode][Python] 36. Valid Sudoku (0) | 2024.09.08 |
[LeetCode][Python] 238. Product of Array Except Self (0) | 2024.09.07 |
[LeetCode][Python] 347. Top K Frequent Elements (0) | 2024.09.07 |