程式語言 - LeetCode - C++ - 57. Insert Interval



題目:


解答:

class Solution {
public:
    vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) {
        vector<vector<int>> r;
        int i = 0;
        int n = intervals.size();

        while ((i < n) && (intervals[i][1] < newInterval[0])) {
            r.push_back(intervals[i]);
            i += 1;
        }

        while ((i < n) && (intervals[i][0] <= newInterval[1])) {
            newInterval[0] = min(newInterval[0], intervals[i][0]);
            newInterval[1] = max(newInterval[1], intervals[i][1]);
            i += 1;
        }
        r.push_back(newInterval);

        while (i < n) {
            r.push_back(intervals[i]);
            i += 1;
        }

        return r;
    }
};