class Solution: def insert(self, intervals: list[list[int]], newInterval: list[int]) -> list[list[int]]: l = newInterval[0] r = newInterval[1] if r < intervals[0][0]: intervals.insert(0, newInterval) return intervals if l > intervals[-1][1]: intervals.append(newInterval) return intervals nl = 0 nl_f = False nl_ff = False nr = len(intervals) nr_f = False nr_ff = False for ind, interval in enumerate(intervals): left = interval[0] right = interval[1] if l >= left and l <= right: nl_f = True nl = ind if r >= left and r <= right: nr_f = True nr = ind + 1 if nl_f == False: for i in range(1, len(intervals)): if l > intervals[i - 1][1] and l < intervals[i][0]: nl = i nl_ff = True break if nr_f == False: for i in range(1, len(intervals)): if r > intervals[i - 1][1] and r < intervals[i][0]: nr = i nr_ff = True break print(nl, nr, nl_f, nr_f) rlt = [] for i in range(nl): rlt.append(intervals[i]) nl_l = intervals[nl][0] if nl_f == False: nl_l = l if nr_ff == True or nr_f == True: nr = nr - 1 nr_r = intervals[nr][1] nr = nr + 1 if nr_f == False: nr_r = r rlt.append([nl_l, nr_r]) print(rlt) for i in range(nr, len(intervals)): rlt.append(intervals[i]) return rlt intervals = [[1,3], [6,9]] newInterval = [2,5] sol = Solution() print(sol.insert(intervals=intervals, newInterval=newInterval)) intervals = [[1,2], [3,5], [6,7], [8,10],[12, 16]] newInterval = [4, 8] print(sol.insert(intervals=intervals, newInterval=newInterval)) intervals = [[1,2], [3,5], [6,7], [8,10],[12, 16]] newInterval = [0, 16] print(sol.insert(intervals=intervals, newInterval=newInterval)) print() intervals = [[1,5]] newInterval = [6, 18] print(sol.insert(intervals=intervals, newInterval=newInterval))