LeetCode: Insert Interval

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 }
View Code
原文地址:https://www.cnblogs.com/yingzhongwen/p/2993227.html