• LeetCode——删除被覆盖区间


    Q:给你一个区间列表,请你删除列表中被其他区间所覆盖的区间。
    只有当 c <= a 且 b <= d 时,我们才认为区间 [a,b) 被区间 [c,d) 覆盖。
    在完成所有删除操作后,请你返回列表中剩余区间的数目。

    示例:
    输入:intervals = [[1,4],[3,6],[2,8]]
    输出:2
    解释:区间 [3,6] 被区间 [2,8] 覆盖,所以它被删除了。

    A:
    对于三种情况,我们应该这样处理:
    对于情况一,找到了覆盖区间。
    对于情况二,两个区间可以合并,成一个大区间。
    对于情况三,两个区间完全不相交。

        public int removeCoveredIntervals(int[][] intervals) {
            if (intervals.length <= 1)
                return intervals.length;
            Arrays.sort(intervals, (t1, t2) -> {
                if (t1[0] == t2[0])
                    return t2[1] - t1[1];
                else
                    return t1[0] - t2[0];
            });//排序
            int left = intervals[0][0];
            int right = intervals[0][1];
    
            int res = 1;
            for (int i = 1; i < intervals.length; i++) {
                if (right < intervals[i][0]) {
                    left = intervals[i][0];
                    right = intervals[i][1];
                    res++;
                } else {
                    if (right < intervals[i][1])
                        res++;
                    left = Math.min(left, intervals[i][0]);
                    right = Math.max(right, intervals[i][1]);
                }
            }
            return res;
        }
    
  • 相关阅读:
    化DataSet对象并压缩
    数据库连接
    触发器
    事务
    关于C语言的宏
    GCC中的一些参数
    《tkinter实用教程六》tkinter ttk.Label 控件
    《tkinter实用教程三》ttk.Button 控件
    5. 替换空格
    《tkinter实用教程二》ttk 子模块
  • 原文地址:https://www.cnblogs.com/xym4869/p/13763750.html
Copyright © 2020-2023  润新知