码迷,mamicode.com
首页 > 其他好文 > 详细

【leetcode】1288. Remove Covered Intervals

时间:2019-12-15 10:35:43      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:ber   therefore   block   nbsp   代码   als   HERE   题目   constrain   

题目如下:

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】1288. Remove Covered Intervals

标签:ber   therefore   block   nbsp   代码   als   HERE   题目   constrain   

原文地址:https://www.cnblogs.com/seyjs/p/12041878.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!