程序猿小明现在遇到了两个有序数组((从小到大)num1、num2现在他需要从两个数组中找到并返回其中的中位数,请帮助小明写出代码。例1:输入:nums1=[1,3],nums2=[2]输出:2.00000例1:输入:nums1=[1,2],nums2=[3,4]输出:2.50000
int smaller_than_k(int k){
int x = 0, j = n-1;
for(int i = 0; i < n; ++i){
while(j >= 0 && k <= a[i]+b[j]){
--j;
}
x += j+1;
}
return x;
}
def median(num1,num2):
num = sorted(num1 + num2)
l = len(num)
return (num[int(l/2)]+num[int(l/2)-1])/2 if l%2 == 0 else num[int(l/2)]
num1=[1,2]
num2=[3,4]
print(median(num1,num2))
你好!
代码如下:
若有帮助,请采纳!
nums1=[1,3]
nums2=[2]
nums1.extend(nums2) # 列表合并
nums1.sort() # 对列表进行排序
num = len(nums1)
m = num/2
n = num-1
if num == 0: # 若列表为空
print('None')
elif num%2 == 0: # 若列表数元素数为偶数
print("%.1f"%((num[m]+num[m-1])/2.0))
else: # 若列表数元素数为奇数
print(nums1[int(n/2)])
结果如下: