Title: 057 Insert Intervals
This problem is to consider whether the two boundary points will fall into the original intervals within a certain interval or outside, the discussion can be divided into the situation
classSolution:#@param intervals, a list of intervals #@param newinterval, a Interval #@return A list of Interval definsert (self, intervals, newinterval): Intervals.insert (0, Interval (-1001,-1000)) Intervals.append (Interval (100000,100001)) In_head=False In_tail=False i= 1Start=Newinterval.start End=Newinterval.end whileI <len (intervals):ifIntervals[i-1].start <= Start andStart <Intervals[i].start:head= I-1ifStart <= intervals[i-1].end:in_head=TrueifIntervals[i-1].end < End andEnd <=Intervals[i].end:tail=IifEnd >=Intervals[i].start:in_tail=True i+ = 1ifIn_head andIn_tail:intervals[tail].start=Intervals[head].start Intervals[head:tail]= [] ifIn_head and notIn_tail:intervals[head].end=End Intervals[head+1:tail] = [] if notIn_head andIn_tail:intervals[tail].start=Start Intervals[head+1:tail] = [] if notIn_head and notIn_tail:intervals[head+1:tail] =[] Intervals.insert (head+1, Interval (start,end))returnINTERVALS[1:-1]
057 Insert Intervals