Я пытаюсь решить проблему «Медиана 2 отсортированных массивов». Выполнение моего кода прекрасно работает в среде кода VS, но когда я пытаюсь отправить его в Leetcode, в тестовом случае происходит сбой:
nums1=[1,2]
nums2=[3,4]
Результат должен быть равен 2,5, но Leetcode говорит, что я вывод:
2.00000
Может кто-нибудь сказать мне, что не так?
Я прикрепил свой код ниже. Заранее спасибо!
Виктор
class Solution(object):
def findMedianSortedArrays(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: float
"""
l1=len(nums1)
l2=len(nums2)
if l1 is 0 or l2 is 0:
return
new_nums=[0]*(l1+l2)
i=0
j=0
k=0
while (i<l1 and j<l2):
if nums1[i]<=nums2[j]:
new_nums[k]=nums1[i]
i=i+1
k=k+1
else:
new_nums[k]=nums2[j]
j=j+1
k=k+1
while (j<l2):
new_nums[k]=nums2[j]
j=j+1
k=k+1
while (i<l1):
new_nums[k]=nums1[i]
i=i+1
k=k+1
sorted_list=new_nums
length_sorted=len(sorted_list)
if length_sorted%2==0:
mid1=length_sorted//2
mid2=mid1-1
median=(sorted_list[mid1]+sorted_list[mid2])/2
median=float(median)
return median
else:
mid1=length_sorted//2
median=sorted_list[mid1]
median=float(median)
return median
nums1=[1,2]
nums2=[3,4]
print(Solution().findMedianSortedArrays(nums1,nums2))