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