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

总结

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

相关推荐
csdn_aspnet9 小时前
C++ 算法 LeetCode 编号 70 - 爬楼梯
开发语言·c++·算法·leetcode
nbsaas-boot9 小时前
Drools 规则引擎实战:原理、规则语法、数据库动态规则与企业级玩法
java·数据库·python
wuweijianlove9 小时前
算法性能优化中的数据流重构与依赖消解的技术6
算法
Agent手记9 小时前
智能财务对账Agent如何设计?2026金融大模型Agent架构设计与实战指引
人工智能·算法·ai·金融
Emerson_20269 小时前
stack,queue,list的区别和联系
数据结构·c++·list·queue·stack
Hwang2529 小时前
Spring 框架 -01 -单例池的一些理解
java
计算机安禾9 小时前
【算法分析与设计】第5篇:最大子数组问题:分治与线性扫描的对比分析
算法
AI人工智能+电脑小能手9 小时前
【大白话说Java面试题 第74题】【Mysql篇】第4题:InnoDB 和 MyISAM 的数据文件存储区别?
java·开发语言·mysql·面试
z2005093010 小时前
今日算法(组合问题)(回溯解法)
算法·深度优先