373. Find K Pairs with Smallest Sums
373. Find K Pairs with Smallest Sums
Description
Difficulty: Medium
Related Topics: Array, Heap (Priority Queue)
You are given two integer arrays nums1
and nums2
sorted in non-decreasing order and an integer k
.
Define a pair (u, v)
which consists of one element from the first array and one element from the second array.
Return the k
pairs (u1, v1), (u2, v2), …, (uk, vk) with the smallest sums.
Example 1:
1 | Input: nums1 = [1,7,11], nums2 = [2,4,6], k = 3 |
Example 2:
1 | Input: nums1 = [1,1,2], nums2 = [1,2,3], k = 2 |
Example 3:
1 | Input: nums1 = [1,2], nums2 = [3], k = 3 |
Constraints:
- 1 <= nums1.length, nums2.length <= 105
- -109 <= nums1[i], nums2[i] <= 109
nums1
andnums2
both are sorted in non-decreasing order.- 1 <= k <= 104
Hints/Notes
- Priority queue
- Don’t think about moving 2 needles together, pair the first item in 1st list with all items in the 2nd list
Solution
Language: C++
1 | class Solution { |