
leetcode做题记录0056
发布日期:2021-05-07 13:48:24
浏览次数:21
分类:技术文章
本文共 1084 字,大约阅读时间需要 3 分钟。
leetcode 0056
说明
只是为了记录一下,不求多快,也不深究。
会简要描述思路,代码中不写注释。
如碰到不会做的用了别人代码会在博客中标出。
题目描述
思路
模拟一下手动插入的过程就行了。
先按照区间左侧排个序,如果区间有交叉就更改一下,没有交叉就新插入一个区间。
class Solution { public int[][] merge(int[][] intervals) { if (intervals.length < 2) { return intervals; } Arrays.sort(intervals, new Comparator() { @Override public int compare(int[] o1, int[] o2) { if (o1[0] == o2[0]) { return o1[1] - o2[1]; } return o1[0] - o2[0]; } }); List
> ll = new ArrayList
>(); ll.add(new ArrayList ()); ll.get(0).add(intervals[0][0]); ll.get(0).add(intervals[0][1]); for (int[] a : intervals) { if (a[0] > ll.get(ll.size() - 1).get(1)) { ll.add(new ArrayList ()); ll.get(ll.size() - 1).add(a[0]); ll.get(ll.size() - 1).add(a[1]); continue; } for (List li : ll) { if (a[1] > li.get(1) && a[0] <= li.get(1)) { li.remove(1); li.add(a[1]); } else { continue; } } } int[][] res = new int[ll.size()][2]; for (int i = 0; i < ll.size(); i++) { res[i][0] = ll.get(i).get(0); res[i][1] = ll.get(i).get(1); } return res; }}
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月08日 18时58分26秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Shell脚本学习指南
2019-03-06
日志切分神器--logrotate
2019-03-06
C#3.0新增功能08 Lambda 表达式
2019-03-06
C#开发BIMFACE系列35 服务端API之模型对比6:获取模型构建对比分类树
2019-03-06
C# 规范建议
2019-03-06
.NET 5.0正式发布,新功能特性(翻译)
2019-03-06
重磅推出:AutoProject Studio 自动化项目生成器
2019-03-06
INotifyPropertyChanged 接口
2019-03-06
一些有趣的线段树玩法
2019-03-06
Go语言中的数组与数组切片
2019-03-06
操作系统启动过程
2019-03-06
进程管理
2019-03-06
物理层
2019-03-06
内建函数
2019-03-06
C/C++分文件编写
2019-03-06
80x86指令系统-1-数据传送指令
2019-03-06
C语言+easyX图形库的推箱子实现
2019-03-06
结构体内存偏移量
2019-03-06
应用程序与dll的静态库通信
2019-03-06
反汇编-流程控制语句-2-循环控制语句分析
2019-03-06