leetcode100-合并区间

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

这题不会,用的是贪心


一、我的思路和答题思路

这题是取连续,我想的是将构建一个最大数组,将连续值续1,做了一半没做出来。因为担心以后拿不到步骤分,没有训练到贪心的思维,所以最后没有采用这种方法。

题解的思路:先假定排序,然后假定第一组和后面不连续,每次添加新值只用验证和前面连不连续,能减少很多时间复杂度,最后是O(nlogn)

二、代码

java 复制代码
class Solution {
    public int[][] merge(int[][] intervals) {
        //互相包围--合并两个
        //完全包围--取一个
        List<int[]> list1=new ArrayList<int[]>();
        if(intervals.length==0){
            return new int[0][2];
        }
        Arrays.sort(intervals,new Comparator<int[]>(){
            public int compare(int[] intervals1,int[] intervals2){
                return intervals1[0]-intervals2[0];
            }
        });
        for(int i=0;i<intervals.length;++i){
            int L=intervals[i][0],R=intervals[i][1];
            if(list1.size()==0 || list1.get(list1.size()-1)[1]<L){
                list1.add(new int[]{L,R});
            }else{
                list1.get(list1.size()-1)[1]=Math.max(list1.get(list1.size()-1)[1],R);
            }
        }
        return list1.toArray(new int[list1.size()][]);
    }
}

总结

抄的就不说了,只能说我不会贪心。

相关推荐
SL_staff21 分钟前
规则联动:给工厂装上‘自动化神经反射弧’——JVS·物联网平台规则引擎实战教程
java·人工智能·物联网
骑着蜗牛撵大象32729 分钟前
Linux 进程间通信之管道:从 pipe() 的内核语义到 FIFO 落地排错
android·java·linux·系统编程·fifo·管道·进程间通信
爱读书的小胖43 分钟前
LeetCode 122:买卖股票的最佳时机 II(C)解题分析
算法
结局无敌44 分钟前
React Native for OpenHarmony 实战:三方库 react-native-modal-dialog 的鸿蒙化适配指南
深度学习·算法·react native·react.js·harmonyos
WJ.Polar1 小时前
Java封装、继承、多态
java·开发语言
ly76891 小时前
PostgreSQL 备份恢复策略:pg_basebackup、WAL 归档与 PITR 在企业 Java 系统中的落地
java·数据库·postgresql·pitr·pg_basebackup·wal 归档
摇滚侠1 小时前
Java 中如何表示负数,有符号和无符号的区别,补码的计算规则,char byte short int long 的范围
java·开发语言
OPEN-F1 小时前
ROS2系列教程:上位机建图与导航(原理综合)
算法·机器人
weixin_307779131 小时前
C++代码实现MATLAB中的fitrtree函数功能
开发语言·c++·算法·matlab
奇牙coding1 小时前
Codex CLI 升级后多文件编辑静默失效:config.yaml 枚举变更排查与修复指南
java·前端·javascript·ai