632.Smallest-Range-Covering-Elements-from-K-Lists

632. Smallest Range Covering Elements from K Lists

题目地址

https://leetcode.com/problems/smallest-range-covering-elements-from-k-lists/

题目描述

You have k lists of sorted integers in ascending order. Find the smallest range that includes at least one number from each of the k lists.

We define the range [a,b] is smaller than range [c,d] if b-a < d-c or a < c if b-a == d-c.

Example 1:
Input: [[4,10,15,24,26], [0,9,12,20], [5,18,22,30]]
Output: [20,24]
Explanation: 
List 1: [4, 10, 15, 24,26], 24 is in range [20,24].
List 2: [0, 9, 12, 20], 20 is in range [20,24].
List 3: [5, 18, 22, 30], 22 is in range [20,24].

Note:
The given list may contain duplicates, so ascending order means >= here.
1 <= k <= 3500
-105 <= value of elements <= 105.

代码

Approach #1 Priority Queue + Next Array

Time: O(n * log m) && Space: O(m)

Approach #2 Two Pointer [TLE]

Time complexity : O(nm) Space complexity : O(m)

next[i] refers to the element which needs to be considered next in the (i-1)th list.

Approach #3 maxHeap & minHeap

Last updated

Was this helpful?