-
Notifications
You must be signed in to change notification settings - Fork 37
Expand file tree
/
Copy pathProblem_2_InsertInterval.java
More file actions
42 lines (36 loc) · 1.26 KB
/
Problem_2_InsertInterval.java
File metadata and controls
42 lines (36 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package Merge_Intervals;
// Problem Statement: Insert Interval (medium)
// LeetCode Question: 57. Insert Interval
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Problem_2_InsertInterval {
class Interval{
int start;
int end;
public Interval(int start, int end){
this.start = start;
this.end = end;
}
}
public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
if (intervals == null || intervals.isEmpty()) {
return Arrays.asList(newInterval);
}
List<Interval> mergedIntervals = new ArrayList<>();
int i = 0;
while(i < intervals.size() && intervals.get(i).end < newInterval.start){
mergedIntervals.add(intervals.get(i++));
}
while(i < intervals.size() && intervals.get(i).start <= newInterval.end){
newInterval.start = Math.min(intervals.get(i).start, newInterval.start);
newInterval.end = Math.max(intervals.get(i).end, newInterval.end);
i++;
}
mergedIntervals.add(newInterval);
while(i < intervals.size()){
mergedIntervals.add(intervals.get(i++));
}
return mergedIntervals;
}
}