def findKthNum(self , arr1: List[int], arr2: List[int], target: int) -> int:
c1, c2 = 0, 0
num1, num2 = 0, 0
for _ in range(target):
num1 = arr1[c1] if c1 < len(arr1) else float('inf')
num2 = arr2[c2] if c2 < len(arr2) else float('inf')
if num1 > num2:
c2 += 1
else:
c1 += 1
return num1 if num1 < num2 else num2
def getUpMedian(self , arr1: List[int], arr2: List[int]) -> int:
# 中位数,左边和右边数量一样多
n = len(arr1) + len(arr2)
k = n // 2 + 1 if n % 2 else n // 2
# 用上一题第k小的数 求出中位数
return self.findKthNum(arr1, arr2, k)
# 或者用最小和最大堆