Merge K Sorted Arrays
[ [1, 3, 5, 7], [2, 4, 6], [0, 8, 9, 10, 11] ]
def mergekSortedArrays(self, arrays):
import heapq
minheap = []
for i in xrange(len(arrays)):
if arrays[i]:
heapq.heappush(minheap, (arrays[i][0], i, 0) )
result = []
while minheap:
num, i, j = heapq.heappop(minheap)
result.append(num)
# push next element if exists
if j + 1 < len(arrays[i]):
heapq.heappush(minheap, (arrays[i][j+1], i, j+1))
return resultLast updated