Menu
CoddyTech

Longest Consecutive Sequence

보통해싱python iconjava iconcpp iconc iconjs icon+10

특정한 순서가 아닌 정수 배열 nums가 주어집니다. 연속 수열은 x, x+1, x+2 등으로 이루어진 값들의 그룹이며, 각 값은 nums의 어딘가에 나타납니다. 가장 긴 연속 수열의 길이를 반환하세요. 두 번 이상 나타나는 값도 한 번만 셉니다.

함수

longestConsecutive(nums: integer-array) → integer
numsinteger-array
정수, 순서는 상관없으며 반복 허용
반환값integer
nums에 있는 연속된 값의 최장 연속 길이

제약 조건

  • 1 ≤ nums.length ≤ 104
  • -109 ≤ nums[i] ≤ 109
  • 값은 반복될 수 있습니다. 배열에서의 위치는 중요하지 않으며, 어떤 값이 있는지만 중요합니다.

예제

입력
nums = [40, 4, 39, 1, 3, 2, 41]
출력
4
설명
1, 2, 3 및 4가 모두 배열에 흩어져 있더라도 연속된 4개의 값으로 존재합니다. 다른 연속 구간인 39부터 41까지는 값이 3개뿐입니다.
challenge icon

후속 질문

값이 한 번에 하나씩 들어오고, 각 값이 들어올 때마다 지금까지의 가장 긴 연속 구간을 보고해야 한다고 가정해 보세요. 값마다 평균 O(1) 시간에 답을 최신 상태로 유지할 수 있을까요?

코드 초기화
def longestConsecutive(nums):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

테스트 #3

인자

nums = [40, 4, 39, 1, 3, 2, 41]

예상 출력

4