代码随想录——无重叠区间(Leetcode435)

题目链接

贪心 + 排序

java 复制代码
class Solution {
    public int eraseOverlapIntervals(int[][] intervals) {
        int res = 0;
        if(intervals.length == 1 || intervals.length == 0){
            return res;
        }
        // 按左边界排序
        Arrays.sort(intervals, new Comparator<int[]>() {
    		public int compare(int[] intervals1, int[] intervals2) {
        		long diff = (long)intervals1[0] - (long)intervals2[0];
        		if (diff == 0) return 0;
        		return diff > 0 ? 1 : -1;
    		}
		});
        // 记录区间分割点
        int end = intervals[0][1];
        for(int i = 1; i < intervals.length; i++){
            // 如果下一个点的左元素大于等于分割点,说明区间不重叠,改变区间分割点
            if(intervals[i][0] >= end){
                end = intervals[i][1];
            }else{
                // 如果下一个点的左元素小于分割点,说明区间重叠,比较区间分割点和下一个点的右元素,将区间分割点赋值为较小值
                end = Math.min(end,intervals[i][1]);
                // 移除一个区间
                res++;
            }
        }
        return res;
    }
}

最近几道题感觉需要好好掌握一下java数组排序的函数写法

相关推荐
茶猫_2 分钟前
力扣面试题 - 40 迷路的机器人 C语言解法
c语言·数据结构·算法·leetcode·机器人·深度优先
缘友一世10 分钟前
JAVA代理模式和适配器模式
java·代理模式·适配器模式
轻浮j12 分钟前
Sentinel底层原理以及使用算法
java·算法·sentinel
it噩梦13 分钟前
springboot 工程使用proguard混淆
java·spring boot·后端
潜意识起点16 分钟前
Java数组:静态初始化与动态初始化详解
java·开发语言·python
竹影卿心18 分钟前
Java连接HANA数据库
java·数据库·windows
Abelard_27 分钟前
LeetCode--347.前k个高频元素(使用优先队列解决)
java·算法·leetcode
小猪写代码31 分钟前
C语言:递归函数(新增)
算法·c#
点云SLAM32 分钟前
C++创建文件夹和文件夹下相关操作
开发语言·c++·算法
海海不掉头发44 分钟前
软件工程-【软件项目管理】--期末复习题汇总
java·学习·产品运营·软件工程·团队开发·需求分析·期末复习