zoukankan      html  css  js  c++  java
  • 【leetcode】1288. Remove Covered Intervals

    题目如下:

    Given a list of intervals, remove all intervals that are covered by another interval in the list. Interval [a,b) is covered by interval [c,d) if and only if c <= a and b <= d.

    After doing so, return the number of remaining intervals.

    Example 1:

    Input: intervals = [[1,4],[3,6],[2,8]]
    Output: 2
    Explanation: Interval [3,6] is covered by [2,8], therefore it is removed.

    Constraints:

    • 1 <= intervals.length <= 1000
    • 0 <= intervals[i][0] < intervals[i][1] <= 10^5
    • intervals[i] != intervals[j] for all i != j

    解题思路:两层循环比较一下,用字典记录可以被删除掉的元素的下标。

    代码如下:

    class Solution(object):
        def removeCoveredIntervals(self, intervals):
            """
            :type intervals: List[List[int]]
            :rtype: int
            """
            dic = {}
            for i in range(len(intervals)):
                for j in range(i+1,len(intervals)):
                    if i == j :continue
                    if intervals[i][0] <= intervals[j][0] and intervals[i][1] >= intervals[j][1]:
                        dic[j] = 1
                    elif intervals[i][0] >= intervals[j][0] and intervals[i][1] <= intervals[j][1]:
                        dic[i] = 1
            return len(intervals) - len(dic)
            
  • 相关阅读:
    [Leetcode]@python 76. Minimum Window Substring
    [Leetcode]@python 75. Sort Colors
    HTNL表单
    第二天
    开学心德
    HTML表单
    网页制作
    2nd day
    开课心得
    CF10D/POJ2127 LCIS 题解
  • 原文地址:https://www.cnblogs.com/seyjs/p/12041878.html
Copyright © 2011-2022 走看看