在 Python 中查找一对值之间的最大距离的程序

假设我们有两个数组(非增长)nums1 和 nums2。如果 i <= j 且 nums1 [i] <= nums2 [j] 为真,则索引对 (i, j) 与 0 <= i < nums1 的大小和 0 <= j < nums2 的大小是有效的。对距离表示为 (j - i)。我们必须找到每个有效对 (i,j) 的最大距离。如果没有有效的对,则返回 0。

因此,如果输入类似于 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)

示例

让我们看看以下实现以获得更好的理解 -

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

以上是 在 Python 中查找一对值之间的最大距离的程序 的全部内容, 来源链接: utcz.com/z/360643.html

回到顶部