您的位置:首页 > 编程语言 > Python开发

leetcode 日经贴,python code -Median of Two Sorted Arrays

2015-02-17 13:49 477 查看
Median of Two Sorted Arrays

class Solution:
# @return an element from A or B
def findKth(self, A, B, k):
n, m = len(A), len(B)
if n == 0: return B[k - 1]
if m == 0: return A[k - 1]
mid1, mid2 = n / 2, m / 2
if mid1 + mid2 + 2 > k:
if A[mid1] >= B[mid2]:
return self.findKth(A[:mid1], B, k)
else:
return self.findKth(A, B[:mid2], k)
else:
if A[mid1] >= B[mid2]:
return self.findKth(A, B[mid2 + 1:], k - mid2 - 1)
else:
return self.findKth(A[mid1 + 1:], B, k - mid1 - 1)

# @return a float
def findMedianSortedArrays(self, A, B):
n = len(A) + len(B)
if n % 2 == 0:
return (self.findKth(A, B, n / 2) + self.findKth(A, B, n / 2 + 1)) / 2.0
else:
return self.findKth(A, B, n / 2 + 1)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: