[leetcode]57. Insert Interval(Java)

来源:互联网 发布:2016淘宝严打刷单 编辑:程序博客网 时间:2024/05/18 05:37

https://leetcode.com/problems/insert-interval/#/description


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].


Java Code:

package go.jacob.day627;import java.util.ArrayList;import java.util.List;public class Demo1 {/* * Runtime: 15 ms.Your runtime beats 77.22 % of java submissions. */public List<Interval> insert(List<Interval> intervals, Interval newInterval) {//res存取最终结果List<Interval> res = new ArrayList<Interval>();int index = 0;//当intervals中interval区间与newInterval没有重叠时,直接添加到res集合中while (index < intervals.size() && newInterval.start > intervals.get(index).end)res.add(intervals.get(index++));//当存在重叠时,将newInterval赋予新的对象while (index < intervals.size() && newInterval.end >= intervals.get(index).start) {newInterval=new Interval(Math.min(newInterval.start, intervals.get(index).start),Math.max(newInterval.end, intervals.get(index).end));index++;}res.add(newInterval);//如果intervals中还有interval,直接添加到res中while (index < intervals.size())res.add(intervals.get(index++));return res;}}class Interval {int start;int end;Interval() {start = 0;end = 0;}Interval(int s, int e) {start = s;end = e;}}






原创粉丝点击