값 쌍 사이의 최대 거리
nums1 및 nums2 2개가 제공됩니다.인덱스 쌍
(i, j) , 여기서 0 <= i < nums1.length 및 0 <= j < nums2.length 는 i <= j 및 nums1[i] <= nums2[j] 둘 다인 경우에 유효합니다. 쌍의 거리는 j - i 입니다.유효한 쌍의 최대 거리를 반환합니다
(i, j). 유효한 쌍이 없으면 0 를 반환합니다.배열
arr은 arr[i-1] >= arr[i]마다 1 <= i < arr.length이면 증가하지 않습니다.예 1:
입력: nums1 = [55,30,5,4,2], nums2 = [100,20,10,10,5]
출력: 2
설명: 유효한 쌍은 (0,0), (2,2), (2,3), (2,4), (3,3), (3,4) 및 (4,4)입니다.
최대 거리는 쌍(2,4)과 함께 2입니다.
예 2:
입력: nums1 = [2,2,2], nums2 = [10,10,1]
출력: 1
설명: 유효한 쌍은 (0,0), (0,1) 및 (1,1)입니다.
최대 거리는 쌍(0,1)과 함께 1입니다.
예 3:
입력: nums1 = [30,29,19,5], nums2 = [25,25,25,25,25]
출력: 2
설명: 유효한 쌍은 (2,2), (2,3), (2,4), (3,3) 및 (3,4)입니다.
최대 거리는 쌍(2,4)과 함께 2입니다.
제약:
1 <= nums1.length, nums2.length <= 105 1 <= nums1[i], nums2[j] <= 105 nums1와 nums2 모두 증가하지 않습니다. 해결책:
# class Solution:
#     def maxDistance(self, nums1: List[int], nums2: List[int]) -> int:
#         mdiff = 0
#         m = len(nums1)
#         n = len(nums2)
#         nums1min = [0] * m
#         nums2max = [0] * n
#         curr = 0
#         for i in range(m):
#             if nums1[i] < nums1[curr]:
#                 curr = i
#             nums1min[i] = curr
#         curr = n - 1
#         for i in range(n - 1, -1, -1):
#             if nums2[i] > nums2[curr]:
#                 curr = i
#             nums2max[i] = curr
#         print()
#         k = min(m, n)
#         for i in range(k):
#             mdiff = max(mdiff, nums2max[i] - nums1min[i])
#         return mdiff
import bisect
class Solution:
    def maxDistance(self, nums1: List[int], nums2: List[int]) -> int:
        mdiff = 0
        m = len(nums1)
        n = len(nums2)
        nums2.reverse()
        for i in range(m):
            j = n - bisect.bisect_left(nums2, nums1[i]) - 1
            mdiff = max(mdiff, j - i)
        return mdiff
Reference
이 문제에 관하여(값 쌍 사이의 최대 거리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/theabbie/maximum-distance-between-a-pair-of-values-ha1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)