373. Find K Pairs with Smallest

2016-12-17  本文已影响0人  阿团相信梦想都能实现
class Solution(object):
    def kSmallestPairs(self, nums1, nums2, k):
        """
        :type nums1: List[int]
        :type nums2: List[int]
        :type k: int
        :rtype: List[List[int]]
        """
        res=[]
        pq=[]
        def push(i,j):
            if i<len(nums1) and j<len(nums2):
                heapq.heappush(pq,[nums1[i]+nums2[j],i,j])
        push(0,0)
        while pq and len(res)<k:
            
            _,i,j=heapq.heappop(pq)
            res.append([nums1[i],nums2[j]])
            push(i,j+1)
            if j==0:
                push(i+1,0)
            
        return res
上一篇下一篇

猜你喜欢

热点阅读