File tree Expand file tree Collapse file tree 2 files changed +36
-0
lines changed Expand file tree Collapse file tree 2 files changed +36
-0
lines changed Original file line number Diff line number Diff line change 5454| 53 | [ Maximum SubArray] ( https://leetcode.com/problems/maximum-subarray ) | [ ![ Java] ( assets/java.png )] ( src/MaximumSubArray.java ) [ ![ Python] ( assets/python.png )] ( python/maximum_sum_subarray.py ) | |
5555| 54 | [ Spiral Matrix] ( https://leetcode.com/problems/spiral-matrix ) | [ ![ Java] ( assets/java.png )] ( src/SpiralMatrix.java ) | |
5656| 55 | [ Jump Game] ( https://leetcode.com/problems/jump-game ) | [ ![ Java] ( assets/java.png )] ( src/JumpGame.java ) | |
57+ | 56 | [ Merge Intervals] ( https://leetcode.com/problems/merge-intervals ) | [ ![ Java] ( assets/java.png )] ( src/MergeIntervals.java ) | |
5758| 58 | [ Length of Last Word] ( https://leetcode.com/problems/length-of-last-word ) | [ ![ Java] ( assets/java.png )] ( src/LengthOfLastWord.java ) [ ![ Python] ( assets/python.png )] ( python/length_of_last_word.py ) | |
5859| 66 | [ Plus One] ( https://leetcode.com/problems/plus-one ) | [ ![ Java] ( assets/java.png )] ( src/PlusOne.java ) [ ![ Python] ( assets/python.png )] ( python/plus_one.py ) | |
5960| 67 | [ Add Binary] ( https://leetcode.com/problems/add-binary ) | [ ![ Java] ( assets/java.png )] ( src/AddBinary.java ) [ ![ Python] ( assets/python.png )] ( python/add_binary.py ) | |
Original file line number Diff line number Diff line change 1+ // https://leetcode.com/problems/merge-intervals/submissions
2+ // T: O(n log(n))
3+ // S: O(n)
4+
5+ import java .util .ArrayList ;
6+ import java .util .Arrays ;
7+ import java .util .Comparator ;
8+ import java .util .List ;
9+
10+ public class MergeIntervals {
11+ public int [][] merge (int [][] intervals ) {
12+ Arrays .sort (intervals , Comparator .comparingInt (interval -> interval [0 ]));
13+ final List <int []> mergedIntervals = new ArrayList <>();
14+ int start = intervals [0 ][0 ], stop = intervals [0 ][1 ];
15+ for (int i = 1 ; i < intervals .length ; i ++) {
16+ if (intervals [i ][0 ] <= stop ) stop = Math .max (stop , intervals [i ][1 ]);
17+ else {
18+ mergedIntervals .add (new int [] {start , stop });
19+ start = intervals [i ][0 ];
20+ stop = intervals [i ][1 ];
21+ }
22+ }
23+ mergedIntervals .add (new int [] {start , stop });
24+ return toArray (mergedIntervals );
25+ }
26+
27+ private int [][] toArray (List <int []> list ) {
28+ int [][] result = new int [list .size ()][2 ];
29+ int i = 0 ;
30+ for (int [] interval : list ) {
31+ result [i ++] = interval ;
32+ }
33+ return result ;
34+ }
35+ }
You can’t perform that action at this time.
0 commit comments