Median of K Sorted Arrays
Notice
def findMedian(self, nums):
import heapq
length = 0
minheap = []
for i, array in enumerate(nums):
if array:
heapq.heappush(minheap, (array[0], i, 0))
length += len(array)
if length == 0:
return 0.0
idx1, idx2 = (length - 1) // 2, length // 2
count = 0
while minheap:
n, i, j = heapq.heappop(minheap)
if count == idx1:
median1 = n
if count == idx2:
median2 = n
break
if j + 1 < len(nums[i]):
heapq.heappush(minheap, (nums[i][j + 1], i, j + 1))
count += 1
return (median1 + median2) / 2.0Last updated