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

Python에서 값 쌍 사이의 최대 거리를 찾는 프로그램

<시간/>

두 개의 배열(성장하지 않음) nums1과 nums2가 있다고 가정합니다. 0 <=i

따라서 입력이 nums1 =[60,40,15,10,5], nums2 =[115,30,25,15,10]과 같으면 출력은 1이 됩니다. 왜냐하면 여기서 유효한 쌍은 (0,0 ), (2,2), (2,3), (3,3), (3,4) 및 (4,4), 여기서 최대 거리는 쌍(2,3) 또는 쌍(3, 4)

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

  • nums1의 마지막 요소> nums2의 첫 번째 요소인 경우

    • 0 반환

  • i :=0, j :=0 및 max_dist :=0

  • 동안 나는

    • j

      • max_dist :=max_dist의 최대값 및 (j-i)

      • j :=j + 1

    • 그렇지 않으면

      • j :=j + 1

      • 나는 :=나는 + 1

  • max_dist 반환

예시

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

def solve(nums1, nums2):
   if nums1[len(nums1)-1] > nums2[0]:
      return 0

   i = j = max_dist = 0
   while i < len(nums1):
      if j < len(nums2) and nums1[i] <= nums2[j]:
         max_dist = max(max_dist, j-i)
         j += 1

      else:
         j += 1
         i += 1

   return max_dist

nums1 = [60,40,15,10,5]
nums2 = [115,30,25,15,10]
print(solve(nums1, nums2))

입력

[60,40,15,10,5], [115,30,25,15,10]

출력

1