https://leetcode.com/problems/median-of-two-sorted-arrays/#/description
class Solution(object):
def findPos(this,n1,pos1,n2,pos2,pos):
limit1=len(n1)
limit2=len(n2)
p=0
nn=0
ret=0
while True:
if limit1>pos1 and limit2>pos2:
if p>=pos:
ret = min(n1[pos1], n2[pos2])
break
if n1[pos1]<n2[pos2]:
pos1+=1
else:
pos2+=1
elif limit2>pos2:
if p>=pos:
ret = n2[pos2]
break
pos2+=1
else:
if p>=pos:
ret = n1[pos1]
break
pos1+=1
p+=1
return ret, pos1, pos2
def findMedianSortedArrays(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: float
"""
if (len(nums1)+len(nums2))%2 == 1:
res,_,_ = self.findPos(nums1, 0, nums2, 0, (len(nums1)+len(nums2))/2)
else:
res,pos1,pos2 = self.findPos(nums1, 0, nums2, 0, (len(nums1)+len(nums2))/2-1)
res2,_,_ = self.findPos(nums1, pos1, nums2, pos2, 1)
res = (res+res2)/2.0
return res
思路:仔细考虑各种可能,算法本身无难度