Skip to content

Commit 89d3a85

Browse files
committed
add q56
1 parent d4dc36a commit 89d3a85

File tree

4 files changed

+65
-18
lines changed

4 files changed

+65
-18
lines changed

.idea/workspace.xml

+21-15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
### 链表操作
1010

1111
* [q2_两数相加](/src/链表操作/q2_两数相加)
12-
* [q206_反转链表](/src/链表操作/q206_反转链表)
1312
* [q138_复制带随机指针的链表](/src/链表操作/q138_复制带随机指针的链表)
13+
* [q206_反转链表](/src/链表操作/q206_反转链表)
1414

1515
### 双指针遍历/滑动窗口
1616

@@ -53,6 +53,10 @@
5353
* [q20_有效的括号](/src/栈操作/q20_有效的括号)
5454
* [q224_基本计算器](/src/栈操作/q224_基本计算器)
5555

56+
### 区间合并
57+
58+
* [q56_合并区间](/src/区间合并/q56_合并区间)
59+
5660
### 递归
5761

5862
* [q21_合并两个有序链表](/src/递归/q21_合并两个有序链表)

Rocket.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ ZAB协议包括两种基本的模式:崩溃恢复和消息广播。当整个 Z
3838
1. String字符串:字符串类型是 Redis 最基础的数据结构,首先键都是字符串类型,而且 其他几种数据结构都是在字符串类型基础上构建的,我们常使用的 set key value 命令就是字符串。常用在缓存、计数、共享Session、限速等。
3939
2. Hash哈希:在Redis中,哈希类型是指键值本身又是一个键值对结构,哈希可以用来存放用户信息,比如实现购物车。
4040
3. List列表(双向链表):列表(list)类型是用来存储多个有序的字符串。可以做简单的消息队列的功能。
41-
4. Set集合:集合(set)类型也是用来保存多个的字符串元素,但和列表类型不一 样的是,集合中不允许有重复元素,并且集合中的元素是无序的,不能通过 索引下标获取元素。利用 Set 的交集、并集、差集等操作,可以计算共同喜好,全部的喜好,自己独有的喜好等功能。
41+
4. Set集合:集合(set)类型也是用来保存多个的字符串元素,但和列表类型不一 样的是,集合中不允许有重复元素,并且集合中的元素是无序的,不能通过索引下标获取元素。利用 Set 的交集、并集、差集等操作,可以计算共同喜好,全部的喜好,自己独有的喜好等功能。
4242
5. Sorted Set有序集合(跳表实现):Sorted Set 多了一个权重参数 Score,集合中的元素能够按 Score 进行排列。可以做排行榜应用,取 TOP N 操作。
4343

4444
### Redis 的数据过期策略
@@ -507,7 +507,7 @@ Kafka最初考虑的问题是,customer应该从brokes拉取消息还是brokers
507507

508508
### 进程的组成部分
509509

510-
进程由进程控制块、程序段、数据段三部分组成。
510+
进程由进程控制块(PCB)、程序段、数据段三部分组成。
511511

512512
### 进程的通信方式
513513

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
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+
}

0 commit comments

Comments
 (0)