|
7 | 7 | publicclass_56 {
|
8 | 8 |
|
9 | 9 | publicstaticclassSolution1 {
|
| 10 | +/** |
| 11 | + * My completely original solution on 10/12/2021. |
| 12 | + */ |
10 | 13 | publicint[][]merge(int[][]intervals) {
|
11 |
| -if (intervals.length <=1) { |
12 |
| -returnintervals; |
13 |
| - } |
14 |
| - |
15 |
| -Arrays.sort(intervals, (o1,o2) ->o1[0] -o2[0]); |
16 |
| - |
17 |
| -List<int[]>result =newArrayList(); |
| 14 | +List<int[]>list =newArrayList<>(); |
| 15 | +Arrays.sort(intervals, (a,b) ->a[0] !=b[0] ?a[0] -b[0] :a[1] -b[1]); |
18 | 16 | for (inti =0;i <intervals.length;i++) {
|
19 | 17 | intstart =intervals[i][0];
|
20 | 18 | intend =intervals[i][1];
|
21 |
| -while (i <intervals.length &&end >=intervals[i][0]) { |
22 |
| -end =Math.max(end,intervals[i][1]); |
| 19 | +while (i+1<intervals.length &&intervals[i +1][0] <=end) { |
| 20 | +end =Math.max(intervals[i +1][1],end); |
23 | 21 | i++;
|
24 | 22 | }
|
25 |
| -result.add(newint[]{start,end}); |
26 |
| -i--; |
| 23 | +list.add(newint[]{start,end}); |
27 | 24 | }
|
28 |
| -int[][]finalResult =newint[result.size()][2]; |
29 |
| -for (inti =0;i <result.size();i++) { |
30 |
| -finalResult[i][0] =result.get(i)[0]; |
31 |
| -finalResult[i][1] =result.get(i)[1]; |
| 25 | +int[][]ans =newint[list.size()][2]; |
| 26 | +for (inti =0;i <list.size();i++) { |
| 27 | +ans[i] =list.get(i); |
32 | 28 | }
|
33 |
| -returnfinalResult; |
| 29 | +returnans; |
34 | 30 | }
|
35 | 31 | }
|
36 | 32 |
|
|