当前位置:   article > 正文

LeetCode题解(1229):安排会议日程(Python)_安排日程表leetcode 能不能安排

安排日程表leetcode 能不能安排

题目:原题链接(中等)

标签:扫描线算法、排序

解法时间复杂度空间复杂度执行用时
Ans 1 (Python) O ( N l o g N ) O(NlogN) O(NlogN) O ( N ) O(N) O(N)172ms (65.67%)
Ans 2 (Python)
Ans 3 (Python)

解法一:

class Solution:
    def minAvailableDuration(self, slots1: List[List[int]], slots2: List[List[int]], duration: int) -> List[int]:
        slots1.sort()
        slots2.sort()

        s1, s2 = len(slots1), len(slots2)
        i1, i2 = 0, 0
        while i1 < s1 and i2 < s2:
            start = max(slots1[i1][0], slots2[i2][0])
            end = min(slots1[i1][1], slots2[i2][1])
            if end - start >= duration:
                return [start, start + duration]
            else:
                if slots1[i1][1] < slots2[i2][1]:
                    i1 += 1
                else:
                    i2 += 1
        return []
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/182162?site
推荐阅读
相关标签
  

闽ICP备14008679号