# Program to find maximum distance between a pair of values in Python

Suppose we have two arrays (non-growing) nums1 and nums2. The index pair (i, j) with 0 <= i < size of nums1, and 0 <= j < size of nums2 is valid if i <= j and nums1 [i] <= nums2 [j] is true. The pair distance is denoted as (j - i). We have to find the maximum distance from each valid pair (i,j). If there are no valid pairs, return 0.

So, if the input is like nums1 = [60,40,15,10,5], nums2 = [115,30,25,15,10], then the output willbe 1 because, here valid pairs are (0,0), (2,2), (2,3), (3,3), (3,4) and (4,4), here maximum distance is 1 for either pair (2,3) or pair (3,4)

To solve this, we will follow these steps −

• if last element of nums1 > first eoelement of nums2, then

• return 0

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

• while i < size of nums1, do

• if j < size of nums2 and nums1[i] <= nums2[j], then

• max_dist := maximum of max_dist and (j-i)

• j := j + 1

• otherwise,

• j := j + 1

• i := i + 1

• return max_dist

## Example

Let us see the following implementation to get better understanding −

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



## Input

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

## Output

1


Updated on: 08-Oct-2021

416 Views