Video Stitching

You are given a series of video clips from a sporting event that lastedTseconds. These video clips can be overlapping with each other and have varied lengths.

Each video clipclips[i] is an interval: it starts at timeclips[i][0]and ends at timeclips[i][1]. We can cut these clips into segments freely: for example, a clip[0, 7]can be cut into segments [0, 1] + [1, 3] + [3, 7].

Return the minimum number of clips needed so that we can cut the clips into segments that cover the entire sporting event ([0, T]). If the task is impossible, return-1.

Example 1:

Input: 
clips = 
[[0,2],[4,6],[8,10],[1,9],[1,5],[5,9]]
, T = 
10
Output: 
3
Explanation: 

We take the clips [0,2], [8,10], [1,9]; a total of 3 clips.
Then, we can reconstruct the sporting event as follows:
We cut [1,9] into segments [1,2] + [2,8] + [8,9].
Now we have segments [0,2] + [2,8] + [8,10] which cover the sporting event [0, 10].

Example 2:

Input: 
clips = 
[[0,1],[1,2]]
, T = 
5
Output: 
-1
Explanation: 

We can't cover [0,5] with only [0,1] and [0,2].

Example 3:

Example 4:

分析

DP存最小个数:一loop所有长度,内loop所有range,长度在range内的话的dp取最小。

dp存最远可达距离

贪心

Last updated

Was this helpful?