Skip to content

Commit ad03733

Browse files
committed
feat: add solutions to lc problem: No.0056
No.0056.Merge Intervals
1 parent 5e0b388 commit ad03733

File tree

3 files changed

+105
-0
lines changed

3 files changed

+105
-0
lines changed

solution/0000-0099/0056.Merge Intervals/README.md

+43
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,25 @@ function merge(intervals: number[][]): number[][] {
134134
}
135135
```
136136

137+
```ts
138+
function merge(intervals: number[][]): number[][] {
139+
intervals.sort((a, b) => a[0] - b[0]);
140+
const n = intervals.length;
141+
const res = [];
142+
let i = 0;
143+
while (i < n) {
144+
let [l, r] = intervals[i];
145+
i++;
146+
while (i < n && r >= intervals[i][0]) {
147+
r = Math.max(r, intervals[i][1]);
148+
i++;
149+
}
150+
res.push([l, r]);
151+
}
152+
return res;
153+
}
154+
```
155+
137156
### **C++**
138157

139158
```cpp
@@ -233,6 +252,30 @@ public class Solution {
233252
}
234253
```
235254
255+
### **Rust**
256+
257+
```rust
258+
impl Solution {
259+
pub fn merge(mut intervals: Vec<Vec<i32>>) -> Vec<Vec<i32>> {
260+
intervals.sort_unstable_by(|a, b| a[0].cmp(&b[0]));
261+
let n = intervals.len();
262+
let mut res = vec![];
263+
let mut i = 0;
264+
while i < n {
265+
let l = intervals[i][0];
266+
let mut r = intervals[i][1];
267+
i += 1;
268+
while i < n && r >= intervals[i][0] {
269+
r = r.max(intervals[i][1]);
270+
i += 1;
271+
}
272+
res.push(vec![l, r]);
273+
}
274+
res
275+
}
276+
}
277+
```
278+
236279
### **...**
237280

238281
```

solution/0000-0099/0056.Merge Intervals/README_EN.md

+43
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,25 @@ function merge(intervals: number[][]): number[][] {
104104
}
105105
```
106106

107+
```ts
108+
function merge(intervals: number[][]): number[][] {
109+
intervals.sort((a, b) => a[0] - b[0]);
110+
const n = intervals.length;
111+
const res = [];
112+
let i = 0;
113+
while (i < n) {
114+
let [l, r] = intervals[i];
115+
i++;
116+
while (i < n && r >= intervals[i][0]) {
117+
r = Math.max(r, intervals[i][1]);
118+
i++;
119+
}
120+
res.push([l, r]);
121+
}
122+
return res;
123+
}
124+
```
125+
107126
### **C++**
108127

109128
```cpp
@@ -203,6 +222,30 @@ public class Solution {
203222
}
204223
```
205224
225+
### **Rust**
226+
227+
```rust
228+
impl Solution {
229+
pub fn merge(mut intervals: Vec<Vec<i32>>) -> Vec<Vec<i32>> {
230+
intervals.sort_unstable_by(|a, b| a[0].cmp(&b[0]));
231+
let n = intervals.len();
232+
let mut res = vec![];
233+
let mut i = 0;
234+
while i < n {
235+
let l = intervals[i][0];
236+
let mut r = intervals[i][1];
237+
i += 1;
238+
while i < n && r >= intervals[i][0] {
239+
r = r.max(intervals[i][1]);
240+
i += 1;
241+
}
242+
res.push(vec![l, r]);
243+
}
244+
res
245+
}
246+
}
247+
```
248+
206249
### **...**
207250

208251
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
impl Solution {
2+
pub fn merge(mut intervals: Vec<Vec<i32>>) -> Vec<Vec<i32>> {
3+
intervals.sort_unstable_by(|a, b| a[0].cmp(&b[0]));
4+
let n = intervals.len();
5+
let mut res = vec![];
6+
let mut i = 0;
7+
while i < n {
8+
let l = intervals[i][0];
9+
let mut r = intervals[i][1];
10+
i += 1;
11+
while i < n && r >= intervals[i][0] {
12+
r = r.max(intervals[i][1]);
13+
i += 1;
14+
}
15+
res.push(vec![l, r]);
16+
}
17+
res
18+
}
19+
}

0 commit comments

Comments
 (0)