@@ -10,32 +10,22 @@ public int[][] insert(int[][] intervals, int[] newInterval) {
10
10
List <int []> list = new ArrayList <>();
11
11
int i = 0 ;
12
12
// add all the intervals ending before newInterval starts
13
- while (i < intervals .length && intervals [i ][intervals [ i ]. length - 1 ] < newInterval [0 ]) {
13
+ while (i < intervals .length && intervals [i ][1 ] < newInterval [0 ]) {
14
14
list .add (intervals [i ++]);
15
15
}
16
16
// merge all overlapping intervals to one considering newInterval
17
- while (i < intervals .length && intervals [i ][0 ] <= newInterval [newInterval . length - 1 ]) {
17
+ while (i < intervals .length && intervals [i ][0 ] <= newInterval [1 ]) {
18
18
newInterval = new int []{ // we could mutate newInterval here also
19
19
Math .min (newInterval [0 ], intervals [i ][0 ]),
20
- Math .max (newInterval [newInterval . length - 1 ], intervals [i ][intervals [ i ]. length - 1 ])};
20
+ Math .max (newInterval [1 ], intervals [i ][1 ])};
21
21
i ++;
22
22
}
23
23
list .add (newInterval );
24
24
// add all the rest
25
25
while (i < intervals .length ) {
26
26
list .add (intervals [i ++]);
27
27
}
28
- return convertToArray (list );
29
- }
30
-
31
- private int [][] convertToArray (List <int []> list ) {
32
- int [][] result = new int [list .size ()][list .get (0 ).length ];
33
- for (int i = 0 ; i < list .size (); i ++) {
34
- for (int j = 0 ; j < list .get (i ).length ; j ++) {
35
- result [i ][j ] = list .get (i )[j ];
36
- }
37
- }
38
- return result ;
28
+ return list .toArray (new int [list .size ()][]);
39
29
}
40
30
}
41
31
}
0 commit comments