Topic:
Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary).
Assume that the intervals were initially sorted according to their start times.
Example 1:
Given intervals [1,3],[6,9]
, insert and merge in as [2,5]
[1,5],[6,9]
.
Example 2:
Given [1,2],[3,5],[6,7],[8,10],[12,16]
, insert and merge in as [4,9]
[1,2],[3,10],[12,16]
.
This is because, the new interval [4,9]
overlaps [3,5],[6,7],[8,10]
with.
test instructions and analysis: a sequence of non-overlapping intervals sorted in ascending order is given, and a new interval is inserted to merge the overlapping intervals.
Code:
/*** Definition for a interval. * public class Interval {* int start; * int end; * Interval () {start = 0 ; end = 0; } * Interval (int s, int e) {start = s; end = e;} }*/classSolution {//a sequence of non-overlapping intervals sorted in ascending order is given, and a new interval is inserted to merge the overlapping intervals . Publiclist<interval> Insert (list<interval>intervals, Interval newinterval) {List<Interval> res =NewArraylist<>(); intI=0; while(I<intervals.size () && intervals.get (i). End<newinterval.start) {//Direct join before the crossover intervalRes.add (Intervals.get (i++)); } while(I<intervals.size () && intervals.get (i). Start <= Newinterval.end) {//There are crossover intervalsNewInterval =NewInterval (Math.min (Intervals.get (i). Start,newinterval.start), Math.max (Interval S.get (i). End,newinterval.end)); I++; } res.add (NewInterval); while(I < intervals.size ())//after the overlapping interval is also added directlyRes.add (Intervals.get (i++)); returnRes; }}
[Leetcode] 57. Insert Interval Java