Skip to content

Commit 67fdf3a

Browse files
authored
feat: added leetcode 57 solution (#109)
1 parent 07512f6 commit 67fdf3a

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
class Solution {
2+
public boolean isOverlapping(int s0, int e0, int s1, int e1) {
3+
if (s0 <= s1 && e0 >= e1) {
4+
return true;
5+
} else if (s0 >= s1 && e0 <= e1) {
6+
return true;
7+
} else if (e0 >= s1 && e0 <= e1) {
8+
return true;
9+
} else if (s0 >= s1 && s0 <= e1) {
10+
return true;
11+
} else {
12+
return false;
13+
}
14+
}
15+
16+
public int[][] insert(int[][] intervals, int[] newInterval) {
17+
int[] tempInterval = new int[100005];
18+
int minStart = newInterval[0];
19+
int maxStart = newInterval[0];
20+
int size = 0;
21+
22+
for (int i = 0; i < 100005; tempInterval[i] = -1, i++);
23+
24+
for (int[] interval: intervals) {
25+
minStart = Math.min(minStart, interval[0]);
26+
maxStart = Math.max(maxStart, interval[0]);
27+
28+
if (isOverlapping(interval[0], interval[1], newInterval[0], newInterval[1])) {
29+
newInterval[0] = Math.min(interval[0], newInterval[0]);
30+
newInterval[1] = Math.max(interval[1], newInterval[1]);
31+
} else {
32+
tempInterval[interval[0]] = interval[1];
33+
size++;
34+
}
35+
}
36+
37+
tempInterval[newInterval[0]] = newInterval[1];
38+
size++;
39+
40+
int[][] answer = new int[size][2];
41+
42+
for (int i = minStart, j = 0; i <= maxStart; i++) {
43+
if (tempInterval[i] >= 0) {
44+
answer[j][0] = i;
45+
answer[j++][1] = tempInterval[i];
46+
}
47+
}
48+
49+
return answer;
50+
}
51+
}

0 commit comments

Comments
 (0)