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

파이썬에서 주어진 길이의 가장 큰 부분배열을 찾는 프로그램

<시간/>

다양한 정수 값과 주어진 길이 k를 포함하는 배열이 있다고 가정합니다. 주어진 길이의 배열에서 가장 큰 부분배열을 찾아야 합니다. 하위 배열은 하위 배열1[i] ≠ 하위 배열2[i] 및 하위 배열1[i]> 하위 배열2[i]인 경우 다른 하위 배열보다 크다고 합니다.

따라서 입력이 nums =[5, 3, 7, 9], k =2와 같으면 출력은 [7, 9]가 됩니다.

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

  • start :=숫자 크기 - k
  • max_element :=nums[시작]
  • max_index :=시작
  • 시작하는 동안>=0, 수행
    • nums[start]> max_element가 0이 아니면
      • max_element :=nums[시작]
      • max_index :=시작
    • 반환 nums[인덱스 max_index에서 max_index + k로]
  • 반환 nums[인덱스 max_index에서 max_index + k로]

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

예시

def solve(nums, k):
   start = len(nums) - k
   max_element = nums[start]
   max_index = start

   while start >= 0:
      if nums[start] > max_element:
         max_element = nums[start]
         max_index = start

      start -= 1

   return nums[max_index:max_index + k]

print(solve([5, 3, 7, 9], 2))

입력

[5, 3, 7, 9], 2

출력

[7, 9]