AlgoDesign

Merge sorted files

1from heapq import *
2class Solution:
3    def mergeSortedFiles(self, sortedArrays):
4        minHeap = []
5        for i in range(len(sortedArrays)): heappush(minHeap, (sortedArrays[i][0][0], i, 0, sortedArrays[i][0]))
6
7        res = []
8        while minHeap:
9            time, i, j, file = heappop(minHeap)
10            res.append(file)
11            if j + 1 < len(sortedArrays[i]): heappush(minHeap, (sortedArrays[i][j + 1][0], i, j + 1, sortedArrays[i][j + 1]))
12        
13        return res