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

Python에서 고유한 요소가 있는 가장 긴 연속 하위 목록의 길이를 찾는 프로그램

<시간/>

모든 요소가 고유한 nums라는 숫자 목록이 있다고 가정합니다. 연속된 요소를 포함하는 가장 긴 하위 목록의 길이를 찾아야 합니다.

따라서 입력이 nums =[3, 6, 7, 5, 4, 9]와 같으면 하위 목록이 [3, 6, 7, 5, 4]이기 때문에 출력은 5가 됩니다. 여기에는 모든 연속 요소가 포함됩니다. 3에서 7까지.

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

  • ret :=0
  • 0부터 숫자 - 1까지의 범위에 있는 i에 대해
    • lhs :=nums[i]
    • rhs :=nums[i]
    • i 범위에서 nums - 1까지의 j에 대해, do
      • lhs :=lhs 및 nums[j]의 최소값
      • rhs :=rhs 및 nums의 최대값[j]
      • (rhs - lhs)가 (j - i)와 같으면
        • ret :=ret의 최대값 및 (j - i + 1)
  • 반환

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

def solve(nums):
   ret = 0
   for i in range(len(nums)):
    lhs = nums[i]
   rhs = nums[i]
   for j in range(i, len(nums)):
      lhs = min(lhs, nums[j])
      rhs = max(rhs, nums[j])
      if rhs - lhs == j - i:
          ret = max(ret, j - i + 1)
   return ret

nums = [3, 6, 7, 5, 4, 9]
print(solve(nums))

입력

[3, 6, 7, 5, 4, 9]

출력

1