加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

[Swift]LeetCode1024. 视频拼接 | Video Stitching

发布时间:2020-12-14 04:57:41 所属栏目:百科 来源:网络整理
导读: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] ?

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 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],5],[5,9]],T = 10 Output: 3 Explanation: We take the clips [0,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,10] which cover the sporting event [0,10]. 

Example 2:

Input: clips = [[0,1],2]],T = 5 Output: -1 Explanation: We can‘t cover [0,5] with only [0,1] and [0,2]. 

Example 3:

Input: clips = [[0,[6,8],[0,4],3],7],[2,[3,T = 9 Output: 3 Explanation: We can take clips [0,and [6,9]. 

Example 4:

Input: clips = [[0,8]],T = 5 Output: 2 Explanation: Notice you can have extra video after the event ends.

Note:

  1. 1 <= clips.length <= 100
  2. 0 <= clips[i][0],clips[i][1] <= 100
  3. 0 <= T <= 100

Runtime:?16 ms
Memory Usage:?18.8 MB
 1 class Solution {
 2     func videoStitching(_ clips: [[Int]],_ T: Int) -> Int {
 3         var last:Int = 0
 4         var cnt:Int = 0
 5         while(true)
 6         {
 7             if last >= T {break}
 8             var found:Bool = false
 9             var mx:Int = -1
10             for i in 0..<clips.count
11             {
12                 if clips[i][0] <= last
13                 {
14                     mx = max(mx,clips[i][1])
15                 }
16             }
17             if mx > last
18             {
19                 last = mx
20                 cnt += 1
21                 found = true
22             }
23             if !found {break}
24         }
25         if last >= T {return cnt}
26         return -1
27     }
28 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读