...

/

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 arrays and an integer kk, find kk pairs of numbers with the smallest sum so that in each pair, each array 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 arrays. This creation of pairs costs O(n1n2)O(n_1 * n_2), where n1n_1 and n2n_2 are the lengths of two arrays.

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