题解 | #牛舍扩建#

牛舍扩建

https://www.nowcoder.com/practice/2bb8208d18344608bc6bb19a78facad9

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param intervals int整型vector<vector<>> 
     * @param new_interval int整型vector 
     * @return int整型vector<vector<>>
     */
    vector<vector<int> > insertNewInterval(vector<vector<int> >& intervals, vector<int>& new_interval) {
        // write code here
        if (new_interval[1] < intervals[0][0]) {
            intervals.insert(intervals.begin(), new_interval);
            return intervals;
        }
        if (new_interval[0] > intervals.back()[1]) {
            intervals.push_back(new_interval);
        }
        vector<vector<int>> ans;
        for (int i = 0; i < intervals.size(); i++) {
            if (intervals[i][1] < new_interval[0]) {
                ans.push_back(intervals[i]);
                continue;
            }
            if (new_interval[1] < intervals[i][0]) {
                ans.push_back(new_interval);
                for (int j = i; j < intervals.size(); j++) {
                    ans.push_back(intervals[j]);
                }
                return ans;
            }
            int left = min(intervals[i][0], new_interval[0]);
            int right = max(intervals[i][1], new_interval[1]);
            ans.push_back({left, right});
            int j;
            for (j = i+1; j < intervals.size(); j++) {
                if (intervals[j][0] <= ans.back()[1]) {
                    ans.back()[1] = max(ans.back()[1], intervals[j][1]);
                    continue;
                }
                break; 
            }
            for (; j < intervals.size(); j++) {
                ans.push_back(intervals[j]);
            }
            break;
        }
        return ans;
        
    }
};

全部评论

相关推荐

2024-12-23 10:55
已编辑
大连理工大学 Java
牛客930504082号:华子综测不好好填会挂的,而且填的时候要偏向牛马选项
点赞 评论 收藏
分享
2024-12-04 15:22
郑州轻工业大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务