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()][]);
    }
}

总结

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

相关推荐
ch.ju8 分钟前
Java程序设计(第3版)第四章——final修饰的方法和类
java·开发语言
小O的算法实验室9 分钟前
2026年ACM TCH,动态救护车路径优化:结合 K-means 聚类与多目标粒子群算法两阶段策略
算法
在书中成长13 分钟前
HarmonyOS 小游戏《对战五子棋》开发第8篇 - GomokuEngine核心引擎设计(三):五子连珠判定算法
算法·华为·harmonyos
摇滚侠22 分钟前
云原生 Java 架构师的第一课 K8s+Docker+KubeSphere+DevOps 26-40
java·云原生·kubernetes
Let's Chat Coding25 分钟前
MAC 消息认证码:同时验证来源和完整性
算法·哈希算法
cc.ChenLy3 小时前
算法从入门到精通实战指南
算法
Jerry9 小时前
LeetCode 160. 相交链表
算法
认真的酒窝9 小时前
自己动手开发编译器(十一)语义分析
java·开发语言
Jerry9 小时前
LeetCode 19. 删除链表的倒数第 N 个结点
算法
金銀銅鐵10 小时前
费马小定理
python·数学·算法