leetcode python 004

Posted 蚂蚁不在线

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode python 004相关的知识,希望对你有一定的参考价值。

##  已知l1,l2均为升序数组,
##  在两数组l1,l2中寻找第n位数,
##  两数组中位数中,前者大于后者,说明后者中位数以下的成员必定在真正中位数之下
##  可以将其剔除,剔除a个元素后的两数组中寻找第n-a位数,等价于
def findmid(l1,l2):
    m,n=len(l1),len(l2)
    if (m+n)%2==0:
        return  (listrec(l1,l2,(m+n)/2)+listrec(l1,l2,(m+n)/2))/2
    else:
        return listrec(l1,l2,(m+n+1)/2)
## la长度大于等于lb
def listrec(la,lb,i):
    m,n=len(la),len(lb)
    if n==0:
        return la[i-1]
    if m<n:
        return listrec(lb,la,i)
    if i==1:
        return min(la[0],lb[0])
    p=min(int(i/2),n)
    print(m,n,i,p)
    if la[p-1]>lb[-1]:
        return listrec(la,lb[p:],i-p)
    else:
        return listrec(la[p:],lb,i-p)

lm=[x for x in range(13,200)if x%2==0]
ln=[x for x in range(15,99)if x%2==1]
print(findmid(lm,ln))





























以上是关于leetcode python 004的主要内容,如果未能解决你的问题,请参考以下文章

leetcode刷题17.相交链表——Java&python版

LeetCode-004-寻找两个正序数组的中位数

5-004-(LeetCode- 153) 寻找旋转排序数组中的最小值

LeetCode——004-Median-of-Two-Sorted-Arrays

LeetCode刷题--点滴记录004

LeetCode 004 Median of Two Sorted Arrays - Java