zl程序教程

您现在的位置是:首页 >  其他

当前栏目

【LeetCode】查找和最小的K对数字

LeetCode 数字 查找 最小
2023-09-14 09:13:24 时间

1.题目

在这里插入图片描述

2. 分析

要善于使用现有的方法和库函数。

3. 代码

import heapq # 引入最小堆
class Solution:
    def kSmallestPairs(self, nums1: List[int], nums2: List[int], k: int) -> List[List[int]]:        
        heap = []
        for i in range(len(nums2)): 
            a = (0,i) 
            cur_s = nums1[0] + nums2[i]            
            heapq.heappush(heap, (cur_s,a))
        res = []
        cnt = 0
        # 遍历
        while(len(heap) and cnt < k):
            head = heapq.heappop(heap)
            cur_s,a = head
            i,j = a
            print(i,j)
            if i+1 < len(nums1):
                heapq.heappush(heap,(nums1[i+1]+nums2[j],(i+1,j)))            
            cnt += 1
            res.append([nums1[i],nums2[j]])
        return res