두 개의 배열(성장하지 않음) nums1과 nums2가 있다고 가정합니다. 0 <=i
따라서 입력이 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)
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
nums1의 마지막 요소> nums2의 첫 번째 요소인 경우
-
0 반환
-
-
i :=0, j :=0 및 max_dist :=0
-
동안 나는
-
j
-
max_dist :=max_dist의 최대값 및 (j-i)
-
j :=j + 1
-
-
그렇지 않으면
-
j :=j + 1
-
나는 :=나는 + 1
-
-
-
max_dist 반환
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
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