commit 7882c9ec00720673b22973d53104159f3f10917f
parent d32710e7fef4c3ef02351ab80d78a0c48b3822cf
Author: Andrew Laack <andrew@laack.co>
Date: Wed, 9 Jul 2025 16:28:19 -0500
Completed insert interval
Diffstat:
1 file changed, 50 insertions(+), 0 deletions(-)
diff --git a/insert-interval/insert-intervalV1.py b/insert-interval/insert-intervalV1.py
@@ -0,0 +1,50 @@
+# what the hell is even that?
+
+
+class Solution:
+ def insert(
+ self, intervals: List[List[int]], newInterval: List[int]
+ ) -> List[List[int]]:
+
+ ret_ls = []
+
+ if intervals == []:
+ ret_ls.append(newInterval)
+ return ret_ls
+
+ # left
+ ending_at = -1
+ for i in range(0, len(intervals)):
+ if intervals[i][1] >= newInterval[0]:
+ ending_at = i
+ break
+ else:
+ ret_ls.append(intervals[i])
+
+ upper = len(intervals)
+
+ # mid_interval
+ if ending_at != -1:
+ lower_bound = min(intervals[ending_at][0], newInterval[0])
+ upper = ending_at
+ while upper < len(intervals) and intervals[upper][1] < newInterval[1]:
+ upper += 1
+
+ if upper == len(intervals):
+ ret_ls.append([lower_bound, max(intervals[-1][1], newInterval[1])])
+ return ret_ls
+
+ if upper != len(intervals) and newInterval[1] < intervals[upper][0]:
+ ret_ls.append([lower_bound, newInterval[1]])
+ upper -= 1
+ else:
+ ret_ls.append([lower_bound, intervals[upper][1]])
+
+ # upper interval
+ for i in range(upper + 1, len(intervals)):
+ ret_ls.append(intervals[i])
+
+ if newInterval[0] > intervals[-1][1]:
+ ret_ls.append(newInterval)
+
+ return ret_ls