跳到主要内容

1024.视频拼接

链接:1024.视频拼接
难度:Medium
标签:贪心、数组、动态规划
简介:你将会获得一系列视频片段,这些片段来自于一项持续时长为  T  秒的体育赛事。这些片段可能有所重叠,也可能长度不一。视频片段  clips[i]  都用区间进行表示:开始于  clips[i][0]  并于  clips[i][1]  结束。我们甚至可以对这些片段自由地再剪辑,例如片段  [0, 7]  可以剪切成  [0, 1] + [1, 3] + [3, 7]  三部分。我们需要将这些片段进行再剪辑,并将剪辑后的内容拼接成覆盖整个运动过程的片段([0, T])。返回所需片段的最小数目,如果无法完成该任务,则返回  -1 。

题解 1 - typescript

  • 编辑时间:2020-10-24
  • 执行用时:100ms
  • 内存消耗:40.6MB
  • 编程语言:typescript
  • 解法介绍:[参考连接](https://leetcode-cn.com/problems/video-stitching/solution/shi-pin-pin-jie-by-leetcode-solution/)。
function videoStitching(clips: number[][], T: number): number {
const dp = new Array(T + 1).fill(Infinity);
dp[0] = 0;
for (let i = 0; i <= T; i++) {
for (const clip of clips) {
if (clip[0] < i && i <= clip[1]) {
dp[i] = Math.min(dp[i], dp[clip[0]] + 1);
}
}
}
return dp[T] === Infinity ? -1 : dp[T];
}