LeetCode-435-无重叠区间

题目链接:
力扣435 -无重叠区间

解题思路:和之前的合并区间、汇总区间都比较相似,

  1. 先对二维数组排序,按照左边界升序;
  2. 当 当前区间的左区间 < 前一个区间的右区间,说明有重叠,res+1,还要更新当前区间的右区间,选择两个区间的右边界的最小值。
    代码实现:
java 复制代码
class Solution {
    /**
     * 1. 先对二维数组排序,按照左边界升序
     * 2. 当 当前区间的左区间 < 前一个区间的右区间,说明有重叠,res+1,还要更新当前区间的右区间,选择两个区间的右边界的最小值
     */
    public int eraseOverlapIntervals(int[][] intervals) {
        if (intervals.length == 1) {
            return 0;
        }
        Arrays.sort(intervals, (x, y) -> x[0] == y[0] ? x[1] - y[1] : x[0] - y[0]);// 排序
        int res = 0;// 计数
        int len = intervals.length;
        for (int i = 1; i < len; i++) {
            if (intervals[i][0] < intervals[i - 1][1]) {// 有重叠
                res++;
                intervals[i][1] = Math.min(intervals[i - 1][1], intervals[i][1]);
            }
        }
        return res;
    }
}
相关推荐
棱镜Coding3 小时前
LeetCode-Hot100 31.K个一组反转链表
算法·leetcode·链表
2401_832131953 小时前
模板编译期机器学习
开发语言·c++·算法
嵌入小生0073 小时前
Data Structure Learning: Starting with C Language Singly Linked List
c语言·开发语言·数据结构·算法·嵌入式软件
ValhallaCoder3 小时前
hot100-子串
数据结构·python·算法
ygklwyf3 小时前
无向图的连通性之割点/边,点/边双连通分量
算法·无向图·圆方树
2401_838472513 小时前
单元测试在C++项目中的实践
开发语言·c++·算法
naruto_lnq3 小时前
移动语义与完美转发详解
开发语言·c++·算法
MicroTech20253 小时前
自适生长的点云智能:MLGO微算法科技基于双阈值与DDM的仿生式配准算法
科技·算法
yunsr3 小时前
python作业1
开发语言·python·算法
清铎3 小时前
项目_华为杯’数模研赛复盘_第二问
深度学习·算法·机器学习