두 개의 배열(성장하지 않음) 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