LeetCode - 128-- 가장 긴 연속 순서 (파이썬)

주어진 정수 배열이 정렬되지 않은 상태로, 가장 긴 연속 시퀀스의 길이를 찾을 수 있습니다.

알고리즘 복잡도 시간 요건은 O (N)이다.

예 :

입력 : 100, 4, 200, 1, 3, 2]
출력 : 4가
가장 긴 연속적인 시퀀스가 [1, 2, 3, 4] 설명한다. 그것의 길이는 4입니다.

폭력 타임 아웃. . .

클래스 해결책 :
     DEF -> longestConsecutive (리스트 [INT] 자기, nums) INT : 
        longestSequence = 0
         에 대한 NUM nums : 
            curNum = NUM 
            연속 = 1 동안 curNum +1 에서 nums : 
                curNum + = 1 
                연속 + = 1 
            longestSequence = 최대 (longestSequence, 행진)
         반환 longestSequence
            
            

먼저 개수가 1 미만인지 여부를 결정하기 전에 순서대로 목록을 정렬, 마지막 하나는 일련의 연속적인 긴 부 시간의 최종 비율을 다시 언급 될 수있다

1  해결책 :
 2      DEF longestConsecutive (자기, nums리스트 [INT]) -> INT :
 3          경우  되지 nums :
 4              0
 5          nums.sort ()
 6          longestSequence = 1
 7          curStreak 1 =
 8           I  범위 (1 렌 (nums))
 9              경우 nums [I] = nums [I-1! ] :
 10                  의 경우 nums [I] == nums [I-1] +1 :
 11                      curStreak + 1 =
 12                  다른 :
 13                     longestSequence = 최대 (longestSequence, curStreak)
 14                      curStreak = 1 개
 15          리턴  맥스 (longestSequence, curStreak)   

 

추천

출처www.cnblogs.com/NPC-assange/p/11531443.html