zoukankan      html  css  js  c++  java
  • 【LeetCode】56.merge-intervals

    题目地址

    https://leetcode.com/problems/merge-intervals/

    题目大意

    https://leetcode-cn.com/problems/merge-intervals/

    解题思路

    遍历internals, 对每个internal, 与当前已经merge完成的片段作比较,同时维护一个新的片段集合存储本次internal干预后的片段结果,两个internal之间有以下5种情况:

    最后用本次merge结果更新。

    C++代码

    class Solution {
    public:
        vector<vector<int>> merge(vector<vector<int>>& intervals) {
            vector<vector<int>> result;
            for (vector<int> interval: intervals) {
                vector<vector<int>> tempRet;
                for (int i = 0; i < result.size(); i++) {
                    if (interval[0] <= result[i][0] && result[i][0] <= interval[1] && result[i][1] >= interval[1]) {
                        interval[1] = result[i][1];
                        continue;
                    }
                    
                    if (interval[0] <= result[i][1] && result[i][1] <= interval[1] && result[i][0] <= interval[0]){
                        interval[0] = result[i][0];
                        continue;
                    }
                
                    if (interval[1] <= result[i][1] && result[i][0] <= interval[0]) {
                        interval[0] = result[i][0];
                        interval[1] = result[i][1];
                        continue;
                    }
            
                    if (interval[0] <= result[i][0] && result[i][1] <= interval[1]) {
                        continue;
                    }
                    
                    tempRet.push_back(result[i]);
                }
                
                tempRet.push_back(interval);
                result = tempRet;
            }
            
            return result;
        }
    };
    
  • 相关阅读:
    测光
    闪光灯
    快门
    光圈
    白加黑减
    曝光补偿
    取景雷区
    着眼点
    Web中的无状态含义
    图计算模型[转]
  • 原文地址:https://www.cnblogs.com/AndrewGhost/p/12310099.html
Copyright © 2011-2022 走看看