...

/

Solution: Find K Pairs with Smallest Sums

Solution: Find K Pairs with Smallest Sums

Let's solve the Find K Pairs with Smallest Sums problem using the K-Way Merge pattern.

Statement

Given two lists and an integer kk, find kk pairs of numbers with the smallest sum so that in each pair, each list contributes one number to the pair.

Constraints:

  • 11 \leq list1.length, list2.length \leq 500500
  • 104-10^4 \leq list1[i], list2[i] \leq 10410^4
  • 11 \leq kk \leq 10310^3
  • Input lists should be sorted in ascending order.
  • If the value of kk exceeds the total number of valid pairs that may be formed, return all the pairs.

Solution

So far, you’ve probably brainstormed some approaches and have an idea of how to solve this problem. Let’s explore some of these approaches and figure out which one to follow based on considerations such as time complexity and any implementation constraints.

Naive approach

One way to solve this problem is by creating all possible pairs from the given lists. This creation of pairs costs O(n1n2)O(n_1 * n_2), where n1n_1 and n2n_2 are the lengths of two lists.

Note: Since we’re not certain whether or not the lengths of the two lists are the same, we’ll use n1n_1 ...