Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm khoảng cách tối đa giữa một cặp giá trị trong Python

Giả sử chúng ta có hai mảng (không phát triển) nums1 và nums2. Cặp chỉ mục (i, j) với 0 <=i

Vì vậy, nếu đầu vào giống như nums1 =[60,40,15,10,5], nums2 =[115,30,25,15,10], thì đầu ra sẽ là 1 bởi vì, các cặp hợp lệ ở đây là (0,0 ), (2,2), (2,3), (3,3), (3,4) và (4,4), ở đây khoảng cách tối đa là 1 cho một trong hai cặp (2,3) hoặc cặp (3, 4)

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • nếu phần tử cuối cùng của nums1> eoelement đầu tiên của nums2, thì

    • trả về 0

  • i:=0, j:=0 và max_dist:=0

  • while i

    • nếu j

      • max_dist:=tối đa của max_dist và (j-i)

      • j:=j + 1

    • nếu không,

      • j:=j + 1

      • i:=i + 1

  • trả về max_dist

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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))

Đầu vào

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

Đầu ra

1