File tree 3 files changed +105
-0
lines changed
solution/0000-0099/0056.Merge Intervals
3 files changed +105
-0
lines changed Original file line number Diff line number Diff line change @@ -134,6 +134,25 @@ function merge(intervals: number[][]): number[][] {
134
134
}
135
135
```
136
136
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
+
137
156
### ** C++**
138
157
139
158
``` cpp
@@ -233,6 +252,30 @@ public class Solution {
233
252
}
234
253
```
235
254
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
+
236
279
### ** ...**
237
280
238
281
```
Original file line number Diff line number Diff line change @@ -104,6 +104,25 @@ function merge(intervals: number[][]): number[][] {
104
104
}
105
105
```
106
106
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
+
107
126
### ** C++**
108
127
109
128
``` cpp
@@ -203,6 +222,30 @@ public class Solution {
203
222
}
204
223
```
205
224
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
+
206
249
### ** ...**
207
250
208
251
```
Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments