文章作者:Tyan
博客:noahsnail.com ?|? CSDN ?|? 簡(jiǎn)書(shū)
1. Description
Maximum Distance Between a Pair of Values
2. Solution
解析:Version 1愚墓,由于兩個(gè)數(shù)組都是非增數(shù)組粪滤,因此保證了數(shù)值的大小關(guān)系竟痰,如果i<=j
鲫趁,此時(shí)比較nums1[i] <= nums2[j]
因宇,如果符合,則計(jì)算距離distance
队塘,并與已有距離比較取較大值忍些,在i<=j
且nums1[i] > nums2[j]
的情況下,此時(shí)應(yīng)該移動(dòng)i
轰异,如果i>j
岖沛,則移動(dòng)j
,由于保證了大小關(guān)系搭独,因此只要遍歷完一個(gè)數(shù)組即可婴削。Version 2是對(duì)Version 1的進(jìn)一步優(yōu)化。
- Version 1
class Solution:
def maxDistance(self, nums1: List[int], nums2: List[int]) -> int:
distance = 0
i = 0
j = 0
while i < len(nums1) and j < len(nums2):
if i <= j:
if nums1[i] <= nums2[j]:
distance = max(distance, j - i)
j += 1
else:
i += 1
else:
j += 1
return distance
- Version 2
class Solution:
def maxDistance(self, nums1: List[int], nums2: List[int]) -> int:
distance = 0
i = 0
j = 0
while i < len(nums1) and j < len(nums2):
if nums1[i] > nums2[j]:
i += 1
else:
distance = max(distance, j - i)
j += 1
return distance