zoukankan      html  css  js  c++  java
  • leetcode1024

     1 class Solution(object):
     2     def videoStitching(self, clips: 'List[List[int]]', T: int) -> int:
     3         li = sorted(clips, key = lambda x: (x[0],x[1]))
     4         #print(li)
     5         lens = len(li)
     6         if li[0][0]!=0:
     7             return -1
     8         if li[lens-1][1]<T:
     9             return -1
    10         count = 0
    11         basetag = 0
    12         i = 0
    13         while i < len(li):
    14             if li[i][0]<=basetag:
    15                 if li[i][1]>=T:
    16                     return count + 1
    17                 else:
    18                     i += 1
    19             else:
    20                 count += 1
    21                 basetag = li[i-1][1]
    22                 if basetag >= T:
    23                     return count
    24             
    25         count += 1
    26         return count

    关键的代码是第3行,将二维数组排序,先按第一个数字从小到大,再按第二个数字从小到大。

    设定basetag用于存储之前的剪辑的最大时刻,在开始时刻更晚的剪辑中,寻找开始时间小于上一个剪辑的结束时间的所有剪辑中的,结束时间最晚的一个剪辑。

  • 相关阅读:
    6.8
    6.7
    6.2
    6.1儿童节
    5.24
    5.22
    5.18
    5.17
    Visual Studio开始一个HelloWorld的enclave程序
    以太坊MPT树的HP(Hex-Prefix)编码
  • 原文地址:https://www.cnblogs.com/asenyang/p/10666678.html
Copyright © 2011-2022 走看看