zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    利用后退按钮进行重复提交的解决办法。
    运用上传拦截器时遇到的一个问题
    Fckeditor上传图片的错误
    关于分页的一些经验。
    spring在web工程中的运用
    引入js失败的可能原因
    hql执行update行为时可能遇到的一个问题。
    Eclipse下freemarker插件的安装
    同名文本框与同名复选框在传值上的不同.
    spring在java工程中的运用
  • 原文地址:https://www.cnblogs.com/yingzhongwen/p/2993227.html
Copyright © 2011-2022 走看看