Skip to content

Commit 036832e

Browse files
refactor 56
1 parent d0b87b7 commit 036832e

File tree

1 file changed

+22
-37
lines changed
  • src/main/java/com/fishercoder/solutions

1 file changed

+22
-37
lines changed

src/main/java/com/fishercoder/solutions/_57.java

Lines changed: 22 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -5,44 +5,29 @@
55
import java.util.ArrayList;
66
import java.util.List;
77

8-
/**
9-
* 57. Insert Interval
10-
*
11-
* Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary).
12-
13-
You may assume that the intervals were initially sorted according to their start times.
14-
15-
Example 1:
16-
Given intervals [1,3],[6,9], insert and merge [2,5] in as [1,5],[6,9].
17-
18-
Example 2:
19-
Given [1,2],[3,5],[6,7],[8,10],[12,16], insert and merge [4,9] in as [1,2],[3,10],[12,16].
20-
21-
This is because the new interval [4,9] overlaps with [3,5],[6,7],[8,10].
22-
*/
238
public class _57 {
249

25-
public static class Solution1 {
26-
public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
27-
List<Interval> result = new ArrayList<>();
28-
int i = 0;
29-
// add all the intervals ending before newInterval starts
30-
while (i < intervals.size() && intervals.get(i).end < newInterval.start) {
31-
result.add(intervals.get(i++));
32-
}
33-
// merge all overlapping intervals to one considering newInterval
34-
while (i < intervals.size() && intervals.get(i).start <= newInterval.end) {
35-
newInterval = new Interval( // we could mutate newInterval here also
36-
Math.min(newInterval.start, intervals.get(i).start),
37-
Math.max(newInterval.end, intervals.get(i).end));
38-
i++;
39-
}
40-
result.add(newInterval);
41-
// add all the rest
42-
while (i < intervals.size()) {
43-
result.add(intervals.get(i++));
44-
}
45-
return result;
10+
public static class Solution1 {
11+
public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
12+
List<Interval> result = new ArrayList<>();
13+
int i = 0;
14+
// add all the intervals ending before newInterval starts
15+
while (i < intervals.size() && intervals.get(i).end < newInterval.start) {
16+
result.add(intervals.get(i++));
17+
}
18+
// merge all overlapping intervals to one considering newInterval
19+
while (i < intervals.size() && intervals.get(i).start <= newInterval.end) {
20+
newInterval = new Interval( // we could mutate newInterval here also
21+
Math.min(newInterval.start, intervals.get(i).start),
22+
Math.max(newInterval.end, intervals.get(i).end));
23+
i++;
24+
}
25+
result.add(newInterval);
26+
// add all the rest
27+
while (i < intervals.size()) {
28+
result.add(intervals.get(i++));
29+
}
30+
return result;
31+
}
4632
}
47-
}
4833
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy