代码随想录——无重叠区间(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数组排序的函数写法

相关推荐
雨过天晴而后无语6 分钟前
Windchill中MVC选中事件级联另一MVC内容
java·javascript·html·mvc
胖咕噜的稞达鸭12 分钟前
C++中的父继子承:继承方式实现栈及同名隐藏和函数重载的本质区别, 派生类的4个默认成员函数
java·c语言·开发语言·数据结构·c++·redis·算法
笑口常开xpr19 分钟前
【C++】模板 - - - 泛型编程的魔法模具,一键生成各类代码
开发语言·数据结构·c++·算法
陈小桔32 分钟前
Springboot之常用注解
java·spring boot·后端
立志成为大牛的小牛1 小时前
数据结构——十四、构造二叉树(王道408)
数据结构·笔记·学习·程序人生·考研
IT小番茄1 小时前
Kubernetes云平台管理实战:自动加载到负载均衡(七)
算法
笑口常开xpr1 小时前
【C++继承】深入浅出C++继承机制
开发语言·数据结构·c++·算法
code小毛孩2 小时前
如何简单的并且又能大幅度降低任务队列的锁粒度、提高吞吐量?
java·jvm·数据库
你不是我我2 小时前
【Java开发日记】请介绍类加载过程,什么是双亲委派模型?
java·开发语言
HQChart2 小时前
HQChart使用教程30-K线图如何对接第3方数据46-DRAWTEXT_FIX数据结构
数据结构·hqchart·k线图