zoukankan      html  css  js  c++  java
  • 不重叠的区间个数

    leetcode地址:

    https://leetcode.com/problems/non-overlapping-intervals/description/

    难度:中等

    题目描述:

    Given a collection of intervals, find the minimum number of intervals you need to remove to make the rest of the intervals non-overlapping.

    Note:

    1. You may assume the interval's end point is always bigger than its start point.
    2. Intervals like [1,2] and [2,3] have borders "touching" but they don't overlap each other.

    翻译:

    给定一组区间,求最少需要移除多少个区间,使得剩余的区间不重叠。

    提示:

    1. 给定的区间都是合法的,即右边界一定大于左边界

    2. [1,2] and [2,3]这两个区间虽然有接触,但是不算重叠

    解题思路:

    说实话,这题,刚看到完全没有思路,所以直接看别人的解法,这里记录一下,加深印象。

    题目要求最小删除的区间数目,实际上就是求能够组成不重叠区间的最大数目。

    我们首先需要选出第一个区间,即最左边的区间,那么应该怎么选才能使剩下的区间不重叠数最大呢??答案是应该选择右边界最小的区间。因为只有这样剩余的区间才有更多的机会与左边的区间不重叠,假设右边界最小的区间是A,但是我们选择区间B作为第一个区间,那么A自然也不能再使用了,这样做的结果是使得剩余的情况“更糟糕”,其实就是贪心算法的运用。

    思路理清之后,解题就是收到请来的 事情了。先将所有的区间按照右边界进行排序,然后依次遍历所有的区间,选出符合条件的 不重叠的区间,要移除的区间也就知道了。

    代码就不贴了,很简单。这题主要是思路比较清奇,乍看还真的不容易想到!!

  • 相关阅读:
    慎重使用MySQL auto_increment
    Java Tread多线程(0)一个简单的多线程实例
    Nubia Z5S 官方4.4 201内測版 内核版本号信息
    “cvSnakeImage”: 找不到标识符
    raid5什么意思?怎样做raid5?raid5 几块硬盘?
    Quartz CronTrigger运用
    php zip文件内容比較类
    UVA 1069
    Eclipse启动Tomcat时,45秒超时解决方案
    簡單SQL存儲過程實例
  • 原文地址:https://www.cnblogs.com/zhuge134/p/10890088.html
Copyright © 2011-2022 走看看