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

파이썬에서 가장 긴 연속 시퀀스의 길이를 찾는 프로그램

<시간/>

정렬되지 않은 숫자 배열이 있다고 가정하고 연속 요소의 가장 긴 시퀀스의 길이를 찾아야 합니다.

따라서 입력이 nums =[70, 7, 50, 4, 6, 5]와 같으면 연속 요소의 가장 긴 시퀀스가 ​​[4, 5, 6, 7]이므로 출력은 4가 됩니다. 그래서 우리는 길이를 반환합니다:4.

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

  • nums :=nums의 모든 고유 요소

  • max_cnt :=0

  • 숫자의 각 숫자에 대해 수행

    • 숫자 - 1이 숫자가 아닌 경우

      • cnt :=0

      • num이 num에 있는 동안 수행

        • 숫자 :=숫자 + 1

        • cnt :=cnt + 1

      • max_cnt :=max_cnt 및 cnt의 최대값

  • max_cnt 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시

class Solution:
   def solve(self, nums):
      nums = set(nums)
      max_cnt = 0
      for num in nums:
         if num - 1 not in nums:
            cnt = 0
            while num in nums:
               num += 1
               cnt += 1
            max_cnt = max(max_cnt, cnt)
      return max_cnt
ob = Solution()
nums = [70, 7, 50, 4, 6, 5]
print(ob.solve(nums))

입력

[70, 7, 50, 4, 6, 5]

출력

4