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

相关推荐
数智工坊1 小时前
【数据结构-树与二叉树】4.6 树与森林的存储-转化-遍历
数据结构
figo10tf1 小时前
Spring Boot项目集成Redisson 原始依赖与 Spring Boot Starter 的流程
java·spring boot·后端
zhangyi_viva1 小时前
Spring Boot(七):Swagger 接口文档
java·spring boot·后端
橙露1 小时前
Spring Boot 核心原理:自动配置机制与自定义 Starter 开发
java·数据库·spring boot
晚霞的不甘1 小时前
Flutter for OpenHarmony 可视化教学:A* 寻路算法的交互式演示
人工智能·算法·flutter·架构·开源·音视频
小程故事多_801 小时前
Agent Infra核心技术解析:Sandbox sandbox技术原理、选型逻辑与主流方案全景
java·开发语言·人工智能·aigc
冰暮流星1 小时前
sql语言之分组语句group by
java·数据库·sql
望舒5131 小时前
代码随想录day25,回溯算法part4
java·数据结构·算法·leetcode
黎雁·泠崖1 小时前
【魔法森林冒险】3/14 Allen类(一):主角核心属性与初始化
java·开发语言
黎雁·泠崖1 小时前
【魔法森林冒险】1/14 项目总览:用Java打造你的第一个回合制冒险游戏
java·开发语言