Question
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.
Analysis
先要找到目标interval,然后判断如何制作一个新的 newInterval
- use a while loop to find the right interval
while (i < intervals.size() && intervals.get(i).end < newInterval.start)
- 然后看现有的interval,改变现有的newInterval
while (i < intervals.size() && intervals.get(i).start <= newInterval.end)
拿到两者间最小的start和最大的end确保interval最大- `newInterval = new Interval(
Math.min(newInterval.start, intervals.get(i).start), Math.max(newInterval.end, intervals.get(i).end));`
- 将newInterval加入result
- 将剩下的interval加入result
Complexity
Time:O(n)
Solution
1 |
public List<Interval> (List<Interval> intervals, Interval newInterval) { |
近期评论