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

总结

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

相关推荐
sylviiiiiia几秒前
leetcode hot100
python·算法·leetcode
Mr.Java.6 分钟前
本地测试全绿,上线 SQL 报错?Spring Boot 容器级 DT 测试实战指南(附Skills)
java·测试用例·springboot·testcontainers·dt·java测试skills·dt测试
纪伊路上盛名在14 分钟前
Kabsch算法的Julia实现
开发语言·算法·julia·序列分析·蛋白质·rmsd
维天说23 分钟前
Agent会听人话,反而更难管
java·开发语言·人工智能
SamDeepThinking24 分钟前
if嵌套最好控制在3层以内
java·后端·程序员
边境悍匪26 分钟前
蜗牛学苑 Java 智能体学习 Day36|阿里云 OSS 文件上传、Spring 事务、全局异常思维导图复盘
java·学习·阿里云
苏渡苇27 分钟前
Spring Insight 里上报 Span 为什么用 JDK HttpClient 而不是 RestTemplate
java·后端·spring·spring cloud·springboot·性能监控
裕晟资质规划30 分钟前
军工保密资质二级申报的四个可量化硬条件:条文位置、数值口径与西安配套企业实务要点
java·服务器·网络·数据库·算法
LuminousCPP31 分钟前
数据结构-排序(一):基础排序算法横向对比|冒泡、插入、希尔、堆与双向选择,详解二分 / Knuth 增量
c语言·数据结构·笔记·算法·排序算法
初願致夕霞32 分钟前
C/C++传统程序内存分布(代码实测)
java·c语言·c++