C++
1 /** 2 * Definition for an interval. 3 * struct Interval { 4 * int start; 5 * int end; 6 * Interval() : start(0), end(0) {} 7 * Interval(int s, int e) : start(s), end(e) {} 8 * }; 9 */ 10 class Solution { 11 public: 12 vector<Interval> insert(vector<Interval> &intervals, Interval newInterval) { 13 // Start typing your C/C++ solution below 14 // DO NOT write int main() function 15 vector<Interval> ret; 16 ret.push_back(newInterval); 17 for (int i = 0; i < intervals.size(); i++) { 18 if (intervals[i].end < ret.back().start) ret.insert(ret.end()-1, intervals[i]); 19 else if (intervals[i].start > ret.back().end) ret.push_back(intervals[i]); 20 else { 21 ret.back().start = min(ret.back().start, intervals[i].start); 22 ret.back().end = max(ret.back().end, intervals[i].end); 23 } 24 } 25 return ret; 26 } 27 };
C#

1 /** 2 * Definition for an interval. 3 * public class Interval { 4 * public int start; 5 * public int end; 6 * public Interval() { start = 0; end = 0; } 7 * public Interval(int s, int e) { start = s; end = e; } 8 * } 9 */ 10 public class Solution { 11 public List<Interval> Insert(IList<Interval> intervals, Interval newInterval) { 12 List<Interval> ans = new List<Interval>(); 13 ans.Add(newInterval); 14 for (int i = 0; i < intervals.Count; i++) { 15 if (intervals[i].end < ans[ans.Count-1].start) ans.Insert((int)ans.Count-1, intervals[i]); 16 else if (intervals[i].start > ans[ans.Count-1].end) ans.Add(intervals[i]); 17 else { 18 ans[ans.Count-1].start = Math.Min(ans[ans.Count-1].start, intervals[i].start); 19 ans[ans.Count-1].end = Math.Max(ans[ans.Count-1].end, intervals[i].end); 20 } 21 } 22 return ans; 23 } 24 }