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