1024. Video Stitching
You are given a series of video clips from a sporting event that lasted T seconds. These video clips can be overlapping with each other and have varied lengths.
Each video clip clips[i] is an interval: it starts at time clips[i][0] and ends at time clips[i][1]. We can cut these clips int 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 neeeded so that can cut the clips intp segments that cover the entire sporting event [0, T]. If the task is impossible, return -1.
public int videoStitching(int[][] clips, int T) {
return help(clips, 0, 0, T);
}
public int help(int[][] clips, int l, int count, int T){
if(l >= T)
return count;
int r = l;
int flag = 0;
for(int i=0;i<clips.length;i++){
if(clips[i][0] <= l && clips[i][1] > r){
r = clips[i][1];
flag = 1;
}
}
count += 1;
if(flag==1)
return help(clips, r, count, T);
return -1;
}