LeetCode OJ算法题(五十六):Insert Interval
来源:互联网 发布:淘宝僵尸号买东西 编辑:程序博客网 时间:2024/06/01 10:14
题目:
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]
.
题目给出的区间已经按start排好序了,那么我们只需要处理插入的区间是在最前面,最后面,两个区间之间,以及会出现融合的四种情况。
遍历所有区间,比较newInterval的start与当前元素的end,以确定插入的起始位置,比较newtiterval的end与当前元素的start,以确定融合区间所包含的范围
public static List<Interval> insert(List<Interval> intervals, Interval newInterval) { List<Interval> ret = new ArrayList<Interval>(); int i=0; while(i<intervals.size() && intervals.get(i).end<newInterval.start) ret.add(intervals.get(i++)); if(i == intervals.size()){ ret.add(newInterval); return ret; } Interval tmp = intervals.get(i); if(tmp.start > newInterval.end){ ret.add(newInterval); while(i<intervals.size()) ret.add(intervals.get(i++)); return ret; } tmp.start = tmp.start<newInterval.start?tmp.start:newInterval.start; while(i<intervals.size() && intervals.get(i).start<=newInterval.end){ i++; } tmp.end = newInterval.end>intervals.get(i-1).end?newInterval.end:intervals.get(i-1).end; ret.add(tmp); while(i<intervals.size()) ret.add(intervals.get(i++)); return ret; }
0 0
- LeetCode OJ算法题(五十六):Insert Interval
- LeetCode OJ:Insert Interval
- LeetCode OJ - Insert Interval
- LeetCode OJ Insert Interval
- LeetCode OJ 之 Insert Interval (插入区间)
- LeetCode OJ 57 Insert Interval [hard]
- LeetCode(57) Insert Interval
- LeetCode OJ算法题(三十四):Search Insert Position
- LeetCode: Insert Interval & Merge Interval
- [leetcode刷题系列]Insert Interval
- LeetCode 题解(34): Insert Interval
- LeetCode | Insert Interval(插入区间)
- [leetcode 57] Insert Interval (待修改)
- LeetCode 57. Insert Interval(插入区间)
- LeetCode进阶之路(Insert Interval)
- Leetcode 57 - Insert Interval(区间问题)
- Leetcode-Array-57(insert Interval)
- LeetCode题目 Insert Interval
- Halcon—Tuple中符号的含义
- JDOM解析XML
- pip和easy_install使用方式及pygal安装方式
- cocos2dx 3.1.1 环境搭建 win环境
- Find Metal Mineral
- LeetCode OJ算法题(五十六):Insert Interval
- Fengshui(双向bfs看风水···)
- Android ActionBar动作栏
- KMP算法模板
- 【水字符】#55 A. Word
- jasperServer操作报表时,怎么还原
- 人见人爱A^B
- 高性能网络编程3----TCP消息的接收
- PendingIntent详解