Search⌘ K
AI Features

Kth Smallest Number in M Sorted Lists

Explore how to identify the kth smallest number across m sorted lists by applying the K-way merge pattern. This lesson guides you through understanding the problem constraints and implementing an efficient solution in Go. Develop skills to merge and sort multiple lists while handling duplicates and edge cases like empty lists.

Statement

Given a list, lists, containing mm sorted lists of integers in ascending order, and an integer k, find the kthk^{th} smallest element among all the lists.

Even if some values appear multiple times across the lists, each occurrence is treated as a unique element when determining the kthk^{th} smallest number.

If k exceeds the total number of elements across all lists, return the largest element among them. If the lists are empty, return 0.

Constraints:

  • 1m501\leq m \leq50
  • 00\leq lists[i].length 50\leq 50
  • 109-10^9\leq lists[i][j] 109\leq 10^9
  • 11\leq k 109\leq 10^9

Examples

canvasAnimation-image
1 / 5

Understand the problem

Let’s take a moment to make sure you’ve correctly understood the problem. The quiz below helps you check if you’re solving the correct problem:

KthK^{th} Smallest Number in MM Sorted Lists

1.

What is the output if the following lists and the value of k are given as input?

list1 = [1, 4, 5]

list2 = [4, 7, 8]

list3 = [2, 6, 9]

k = 5

A.

7

B.

5

C.

6


1 / 3

Figure it out!

We have a game for you to play. Rearrange the logical building blocks to develop a clearer understanding of how to solve this problem.

Sequence - Vertical
Drag and drop the cards to rearrange them in the correct sequence.

1
2
3
4

Try it yourself

Implement your solution in main.go in the following coding playground. We have provided a useful code template in the other file that you may build on to solve this problem.

Go
usercode > main.go
package main
func kSmallestNumber(lists [][]int, k int) int {
// Replace this placeholder return statement with your code
return -1
}
Kth Smallest Number in M Sorted Lists