
									 Problem
								
								
									 Solution
								
								
									 Submissions
								
								
							Smallest Range Covering Elements
								Certification: Advanced Level
								Accuracy: 0%
								Submissions: 0
								Points: 15
							
							Write a C program to find the smallest range that includes at least one number from each of the k lists. You have k lists of sorted integers in non-decreasing order. Find the smallest range [a, b] such that a <= b and for each list, there is at least one number x such that a <= x <= b.
Example 1
- Input: nums = [[4,10,15,24,26],[0,9,12,20],[5,18,22,30]]
- Output: [20,24]
- Explanation: - We need to pick one element from each list: [4,10,15,24,26], [0,9,12,20], [5,18,22,30]. 
- One possible combination is 20 (from list 2), 22 (from list 3), and 24 (from list 1). 
- The range [20,24] covers all three elements and has length 4, which is the smallest possible.
 
- We need to pick one element from each list: [4,10,15,24,26], [0,9,12,20], [5,18,22,30]. 
Example 2
- Input: nums = [[1,2,3],[1,2,3],[1,2,3]]
- Output: [1,1]
- Explanation: - We can pick 1 from each list. 
- The range [1,1] covers all elements and has length 0. 
- This is the smallest possible range.
 
- We can pick 1 from each list. 
Constraints
- nums.length == k
- 1 <= k <= 3500
- 1 <= nums[i].length <= 50
- -10^5 <= nums[i][j] <= 10^5
- nums[i] is sorted in non-decreasing order
- Time Complexity: O(n * log k) where n is total number of elements
- Space Complexity: O(k)
Editorial
									
												
My Submissions
										All Solutions
									| Lang | Status | Date | Code | 
|---|---|---|---|
| You do not have any submissions for this problem. | |||
| User | Lang | Status | Date | Code | 
|---|---|---|---|---|
| No submissions found. | ||||
Solution Hints
- Use a min-heap to keep track of the smallest element from each list
- Keep track of the maximum element among current candidates
- Initially, add the first element from each list to the heap
- The current range is [min_element, max_element]
- Remove the minimum element and add the next element from the same list
- Update the range if the new range is smaller
- Continue until one of the lists is exhausted
