Algorithms—57.Insert Interval

原创 2015年07月09日 19:15:06

思路:题目不难,就是要考虑好各种情况。

/**
 * Definition for an interval.
 * public class Interval {
 *     int start;
 *     int end;
 *     Interval() { start = 0; end = 0; }
 *     Interval(int s, int e) { start = s; end = e; }
 * }
 */
public class Solution {
    public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
		int s = newInterval.start;
		int e = newInterval.end;
		if (intervals.size()==0) {
			intervals.add(newInterval);
			return intervals;
		}
		List<Interval> answerList = new ArrayList<Interval>();
		int ns=0;
		int ne=0;
		boolean beginFlag=true;
		boolean endFlag=true;
		for (int i = 0; i < intervals.size(); i++) {
			if (endFlag&&beginFlag) {
				if (intervals.get(i).start>=s) {
					ns=s;
					beginFlag=false;
				}else if (intervals.get(i).end>=s) {
					if (intervals.get(i).end>=e) {
						endFlag=false;
					}else {
						ns=intervals.get(i).start;
						beginFlag=false;
					}
				}
			}
			if (endFlag&&!beginFlag) {
				if (intervals.get(i).start>e) {
					ne=e;
					answerList.add(new Interval(ns,ne));
					endFlag=false;
					beginFlag=true;
				}else if(intervals.get(i).start==e){
					ne=intervals.get(i).end;
					answerList.add(new Interval(ns,ne));
					endFlag=false;
					beginFlag=true;
					continue;
				}else if(intervals.get(i).end>=e){
					ne=intervals.get(i).end;
					answerList.add(new Interval(ns,ne));
					endFlag=false;
					beginFlag=true;
					continue;
				}else if(i==intervals.size()-1){
					ne=e;
					answerList.add(new Interval(ns,ne));
					return answerList;
				}
			}
			if (beginFlag) {
				answerList.add(intervals.get(i));
			}
		}
		if (endFlag) {
			answerList.add(newInterval);
		}
		return answerList;
	}
}


耗时:460ms,中下游


版权声明:本文为博主原创文章,未经博主允许不得转载。

[leetcode] 57.Insert Interval

题目: Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if ne...
  • u014673347
  • u014673347
  • 2015年05月09日 18:12
  • 262

leetcode 57.Insert Interval

水题
  • ljhandlwt
  • ljhandlwt
  • 2016年09月25日 10:34
  • 169

[LeetCode]57.Insert Interval

Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessa...
  • SunnyYoona
  • SunnyYoona
  • 2015年04月22日 15:20
  • 1187

leetcode - 57.Insert Interval

Insert Interval
  • qq_27350929
  • qq_27350929
  • 2017年03月13日 13:32
  • 55

[LeetCode] 57.Insert Interval

【思路】此题与56题思路相同,只是多了一个函数接口,代码如下: 1 /** 2 * Definition for an interval. 3 * struct Interval { 4...
  • qq_24886697
  • qq_24886697
  • 2017年11月20日 11:20
  • 20

【LeetCode】57.Insert Interval(Medium)解题报告

【LeetCode】57.Insert Interval(Medium)解题报告 题目地址:https://leetcode.com/problems/merge-intervals/descrip...
  • haoxiaoxiaoyu
  • haoxiaoxiaoyu
  • 2018年02月19日 22:32
  • 9

Computer Vision: Algorithms and Applications(学习笔记一)--introduction

计算机视觉学习笔记,绪论章节,包括计算机视觉的起源、实际应用、历史趋势和章节结构。...
  • bianyuzhe
  • bianyuzhe
  • 2015年10月22日 17:02
  • 1350

leetCode 57.Insert Interval (插入区间) 解题思路和方法

Insert Interval  Given a set of non-overlapping intervals, insert a new interval into the interva...
  • xygy8860
  • xygy8860
  • 2015年07月15日 14:11
  • 736

MIT_Introduction to Algorithms课程资料

http://blog.csdn.net/tangl_99/article/details/771089 MIT的算法导论第一节课上,教授就说得了算法的performance的重要性,并非简...
  • winbobob
  • winbobob
  • 2014年06月22日 11:41
  • 1170

连通性问题--Algorithms IN C读书笔记

Algorithms IN C读书笔记,第一章介绍的解决连通性问题的四个算法
  • xiaocainiaoshangxiao
  • xiaocainiaoshangxiao
  • 2014年07月13日 12:45
  • 1408
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Algorithms—57.Insert Interval
举报原因:
原因补充:

(最多只允许输入30个字)