难度: Hard
原题连接
内容描述
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 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
思路 1 - 时间复杂度: O(lg(m+n)) - 空间复杂度: O(1)
class Solution(object):
def findMedianSortedArrays(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: float
"""
nums1.extends(nums2)
nums1.sort()
lens = len(nums1)
if lens%2 == 0:
mid = (nums1[lens//2-1] + nums1[lens//2]) / 2
else:
mid = nums1[lens//2]
return mid总结:
- 准确说这解法是不符合题意的,真正的时间复杂度优化到题目要求还真得好好研究官方讲解,不过先放过,有空再细细琢磨