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

가장 짧은 하위 목록을 찾는 프로그램 정렬 후 전체 목록이 Python에서 정렬됩니다.

<시간/>

nums라는 숫자 목록이 있다고 가정하고 num에서 가장 짧은 하위 목록의 길이를 찾아야 합니다. 하위 목록이 정렬되면 전체 배열 nums가 오름차순으로 정렬됩니다.

따라서 입력이 nums =[1,2,5,4,9,10]과 같으면 하위 목록 [4, 3]을 정렬하면 [0, 1, 3, 4]가 나오므로 출력은 2가 됩니다. , 8, 9]

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

  • f:=-1, l:=-1
  • lst:=목록 번호 정렬
  • 0에서 숫자 크기 범위의 i에 대해
    • nums[i]가 lst[i]와 같지 않으면
      • f가 -1과 같으면
        • f :=나
      • 그렇지 않으면
        • 나는 :=나는
  • l이 -1과 같고 f가 -1과 같으면
    • 0을 반환
  • l - f + 1을 반환

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

예시

class Solution:
   def solve(self, nums):
      f=-1
      l=-1
      lst=sorted(nums)
      for i in range(len(nums)):
         if nums[i]!=lst[i]:
            if f == -1:
               f=i
            else:
               l=i
            if l == -1 and f == -1:
      return 0
return l-f+1
ob = Solution() print(ob.solve([1,2,5,4,9,10]))

입력

[1,2,5,4,9,10]

출력

2