Description
There are two sorted arrays nums1 and nums2 of size m and n respectively.
Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).
You may assume nums1 and nums2 cannot be both empty.
Example
Example 1:
nums1 = [1, 3]
nums2 = [2]
The median is 2.0
Example 2:
nums1 = [1, 2]
nums2 = [3, 4]
The median is (2 + 3)/2 = 2.5
Submissions
首先一个数组中median就是把数组分成左右等分的中位数,然后我的解题思路是将两个数组num1和num2合并成一个num,再对num进行操作找中位数.如果num里有偶数个数字,那么中位数为中间两个数的平均数,如果num里有奇数个数字,那么中位数为中间的数.
然后再介绍一下我代码中用到的sorted()函数,它是Python的内置函数,对所有可迭代的对象进行排序操作.sorted 方法返回的是一个新的重新排序后的list,而不是在原来的基础上进行的操作.而且它的内部实现机制采用的是Timsort算法,是一种结合了合并排序(merge sort)和插入排序(insertion sort)而得出的排序算法,在现实中有很好的效率.
实现代码如下:
class Solution:
def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:
num = sorted(nums1+nums2)
if len(num)%2 ==0:
answer = (num[int(len(num)/2-1)]+num[int(len(num)/2)])/2
else:
answer = num[int((len(num)+1)/2)-1]
return answer
Runtime: 88 ms
Memory Usage: 12.9 MB