File tree 4 files changed +65
-18
lines changed
4 files changed +65
-18
lines changed Original file line number Diff line number Diff line change 9
9
### 链表操作
10
10
11
11
* [ q2_两数相加] ( /src/链表操作/q2_两数相加 )
12
- * [ q206_反转链表] ( /src/链表操作/q206_反转链表 )
13
12
* [ q138_复制带随机指针的链表] ( /src/链表操作/q138_复制带随机指针的链表 )
13
+ * [ q206_反转链表] ( /src/链表操作/q206_反转链表 )
14
14
15
15
### 双指针遍历/滑动窗口
16
16
53
53
* [ q20_有效的括号] ( /src/栈操作/q20_有效的括号 )
54
54
* [ q224_基本计算器] ( /src/栈操作/q224_基本计算器 )
55
55
56
+ ### 区间合并
57
+
58
+ * [ q56_合并区间] ( /src/区间合并/q56_合并区间 )
59
+
56
60
### 递归
57
61
58
62
* [ q21_合并两个有序链表] ( /src/递归/q21_合并两个有序链表 )
Original file line number Diff line number Diff line change @@ -38,7 +38,7 @@ ZAB协议包括两种基本的模式:崩溃恢复和消息广播。当整个 Z
38
38
1 . String字符串:字符串类型是 Redis 最基础的数据结构,首先键都是字符串类型,而且 其他几种数据结构都是在字符串类型基础上构建的,我们常使用的 set key value 命令就是字符串。常用在缓存、计数、共享Session、限速等。
39
39
2 . Hash哈希:在Redis中,哈希类型是指键值本身又是一个键值对结构,哈希可以用来存放用户信息,比如实现购物车。
40
40
3 . List列表(双向链表):列表(list)类型是用来存储多个有序的字符串。可以做简单的消息队列的功能。
41
- 4 . Set集合:集合(set)类型也是用来保存多个的字符串元素,但和列表类型不一 样的是,集合中不允许有重复元素,并且集合中的元素是无序的,不能通过 索引下标获取元素 。利用 Set 的交集、并集、差集等操作,可以计算共同喜好,全部的喜好,自己独有的喜好等功能。
41
+ 4 . Set集合:集合(set)类型也是用来保存多个的字符串元素,但和列表类型不一 样的是,集合中不允许有重复元素,并且集合中的元素是无序的,不能通过索引下标获取元素 。利用 Set 的交集、并集、差集等操作,可以计算共同喜好,全部的喜好,自己独有的喜好等功能。
42
42
5 . Sorted Set有序集合(跳表实现):Sorted Set 多了一个权重参数 Score,集合中的元素能够按 Score 进行排列。可以做排行榜应用,取 TOP N 操作。
43
43
44
44
### Redis 的数据过期策略
@@ -507,7 +507,7 @@ Kafka最初考虑的问题是,customer应该从brokes拉取消息还是brokers
507
507
508
508
### 进程的组成部分
509
509
510
- 进程由进程控制块、程序段、数据段三部分组成。
510
+ 进程由进程控制块(PCB) 、程序段、数据段三部分组成。
511
511
512
512
### 进程的通信方式
513
513
Original file line number Diff line number Diff line change
1
+ package 区间合并 .q56_合并区间 ;
2
+
3
+
4
+ import java .util .*;
5
+
6
+ /**
7
+ * 先根据start进行排序之后merge o(n*log(n))
8
+ */
9
+ class Solution {
10
+ public int [][] merge (int [][] intervals ) {
11
+ if (intervals .length <= 1 ){
12
+ return intervals ;
13
+ }
14
+
15
+ Arrays .sort (intervals , Comparator .comparingInt (arr -> arr [0 ]));
16
+
17
+ int [] currInterval = intervals [0 ];
18
+ List <int []> resArr = new ArrayList <>();
19
+ resArr .add (currInterval );
20
+
21
+ for (int [] interval : intervals ){
22
+ int currEnd = currInterval [1 ];
23
+
24
+ int nextBegin = interval [0 ];
25
+ int nextEnd = interval [1 ];
26
+
27
+ if (currEnd >= nextBegin ){
28
+ currInterval [1 ] = Math .max (currEnd , nextEnd );
29
+ } else {
30
+ currInterval = interval ;
31
+ resArr .add (currInterval );
32
+ }
33
+ }
34
+
35
+ return resArr .toArray (new int [resArr .size ()][]);
36
+ }
37
+ }
You can’t perform that action at this time.
0 commit comments