标签:style http color io ar for art 问题 sp
Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary).
You may assume that the intervals were initially sorted according to their start times.
Example 1:
Given intervals [1,3],[6,9],
insert and merge [2,5] in
as [1,5],[6,9].
Example 2:
Given [1,2],[3,5],[6,7],[8,10],[12,16],
insert and merge [4,9] in
as [1,2],[3,10],[12,16].
This is because the new interval [4,9] overlaps with [3,5],[6,7],[8,10].
【分析-非原创】
参考:https://oj.leetcode.com/discuss/3971/in-place-solution-ask-for-suggestion
public static List<Interval> insert(List<Interval> intervals, Interval newInterval) {
List<Interval> list=new ArrayList<Interval>();
for(int i=0;i<intervals.size();i++){
/*只要在newInterval左边的都直接加入到list*/
if(newInterval.start>intervals.get(i).end){
list.add(intervals.get(i));
/*只要在newInterval在的右边,就将newInterval加入list,同时将右边这个当做newInterval*/
}else if(newInterval.end<intervals.get(i).start){
list.add(newInterval);
newInterval=intervals.get(i);
}else{
/*获取新的newInterval*/
newInterval.start=Math.min(newInterval.start,intervals.get(i).start);
newInterval.end=Math.max(newInterval.end,intervals.get(i).end);
}
}
list.add(newInterval);
return list;
}
标签:style http color io ar for art 问题 sp
原文地址:http://blog.csdn.net/brillianteagle/article/details/39294639