Given a collection of intervals, merge all overlapping intervals.

For example,

Given [1,3],[2,6],[8,10],[15,18],return [1,6],[8,10],[15,18].

answer:

class Solution {
public:
    vector<Interval> merge(vector<Interval>& intervals) {
        sort(intervals.begin(),intervals.end(),mySort);
        vector<Interval> result;
        if(intervals.size() == 0) return result;
        int interStart = intervals[0].start, interEnd = intervals[0].end;
        result.push_back(intervals[0]);
        for( int j = 1; j < intervals.size(); j ++){
            if(intervals[j].start <= result.back().end){
                result.back().end = max(result.back().end,intervals[j].end);
            }
            else{
                result.push_back(intervals[j]);
            }
        }
        return result;
    }
    
    static bool mySort(Interval a, Interval b){
        // if((a).start < (b).start) return true;
        // else if((a).start == (b).start){
        //     return (a).end <= (b).end;
        // }
        // else return false;
        return a.start < b.start;
    }
};