Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 가장 긴 연속 시퀀스


정수 배열이 있다고 가정합니다. 가장 긴 연속 요소 시퀀스의 길이를 찾아야 합니다. 따라서 입력이 [100, 4, 250, 1, 3, 2]와 같으면 가장 긴 연속 시퀀스가 ​​[1,2,3,4]이므로 응답은 4가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 가장 긴 배열을 설정합니다 :=0

  • 범위 배열의 i에 대해 -

    • i - 1이 -

      에 없는 경우
      • 현재 :=i, 행진 :=0

      • 나는 -

        에 있는 동안
        • i 1 증가, 연속 1 증가

        • 가장 긴 :=최장 및 연속 행수의 최대값

  • 가장 긴 반환

예시

더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −

class Solution(object):
   def longestConsecutive(self, a):
      a = set(a)
      longest = 0
      for i in a:
         if i-1 not in a:
            current = i
            streak = 0
            while i in a:
               i+=1
               streak+=1
               longest = max(longest,streak)
      return longest

ob = Solution()
print(ob.longestConsecutive([100,4,250,1,3,2]))

입력

[100,4,250,1,3,2]

출력

4