• 0435. Non-overlapping Intervals (M)


    Non-overlapping Intervals (M)

    题目

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

    Example 1:

    Input: [[1,2],[2,3],[3,4],[1,3]]
    Output: 1
    Explanation: [1,3] can be removed and the rest of intervals are non-overlapping.
    

    Example 2:

    Input: [[1,2],[1,2],[1,2]]
    Output: 2
    Explanation: You need to remove two [1,2] to make the rest of intervals non-overlapping.
    

    Example 3:

    Input: [[1,2],[2,3]]
    Output: 0
    Explanation: You don't need to remove any of the intervals since they're already 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.

    题意

    给定一组区间,要求删去最少的区间,使剩余的区间互不重叠。

    思路

    贪心,类似于规划区间使不重叠的区间最多。先将区间按照左端点升序排序,再依次遍历,如果有两两重叠,则删去右端点较大的那个区间。


    代码实现

    Java

    class Solution {
        public int eraseOverlapIntervals(int[][] intervals) {
            Arrays.sort(intervals, (int[] a, int[] b) -> a[0] - b[0]);
            int count = 0;
            int i = 0;
            for (int j = 1; j < intervals.length; j++) {
                if (intervals[i][1] > intervals[j][0]) {
                    count++;
                    i = intervals[i][1] >= intervals[j][1] ? j : i;
                } else {
                    i = j;
                }
            }
            return count;
        }
    }
    
  • 相关阅读:
    opengl编程指南
    Binder机制1---Binder原理介绍
    [Android]使用platform密钥来给apk文件签名的命令
    IntentFilter
    最高分是多少
    Spring注入
    Bean容器的初始化
    Spring中的Junit
    IOC
    接口及面向接口编程
  • 原文地址:https://www.cnblogs.com/mapoos/p/13296911.html
Copyright © 2020-2023  润新知