Friday, 18 December 2015

LeetCode Insert Interval insert interval in the given list and rest is same as done in merge interval

LeetCode Insert Interval insert interval in the given list and rest is same as done in merge interval

/**

 * Definition for an interval.

 * struct Interval {

 *     int start;

 *     int end;

 *     Interval() : start(0), end(0) {}

 *     Interval(int s, int e) : start(s), end(e) {}

 * };

 */

class Solution {

public:

    vector<Interval> insert(vector<Interval>& intervals, Interval newInterval) {

        vector <Interval> ans;

        if(intervals.size()==0){

         ans.push_back(newInterval);

         return ans;

        }

        vector < Interval > :: iterator it,it1;

        it=intervals.begin();

        while(it!=intervals.end() && (it)->start <= newInterval.start)

          it++;

        intervals.insert(it,newInterval);

        it=intervals.begin();

        it1=intervals.begin();

        it1++;

        while(it!=intervals.end() && (it1)!=intervals.end()){

            if((it)->end < (it1)->start){

             ans.push_back((*it));

             it=it1;

             it1++;

            }

            else if((it)->end >= (it1)->end){

             it1++;

            }

            else

            {

             (it)->end=(it1)->end;

             it1++;

            }

        }

        if(it!=intervals.end())

         ans.push_back((*it));

        return ans;

    }

};

No comments:

Post a Comment