Leetcode 56. Intervalle de fusion

Description du problème

Étant donné un ensemble d'intervalles, veuillez fusionner tous les intervalles qui se chevauchent.

Perdre Entrer [ [ 1 , 3 ] , [ 2 , 6 ] , [ 8 , 10 ] , [ 15 , 18 ] ] Entrée: [[1,3], [2,6], [8,10], [15,18]]

[ [ 1 , 6 ] , [ 8 , 10 ] , [ 15 , 18 ] ] Entrez: [[1,6], [8,10], [15,18]]

Rapport de résolution de problèmes

Trier par la valeur de départ de l'intervalle, puis les intervalles qui peuvent être fusionnés dans cette liste triée doivent être continus.

Code d'implémentation

class Solution {
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        vector<vector<int>>ans;
        sort(intervals.begin(),intervals.end());
        for(int i=0;i<intervals.size();i++){
            vector<int>temp;
            int max_=intervals[i][1];
            temp.push_back(intervals[i][0]);
            while(i<intervals.size()-1&&(max_>=intervals[i+1][0])){
                max_=max(max_,intervals[i+1][1]);
                i++;
            }
            temp.push_back(max_);
            ans.push_back(temp);
        }
        return ans;
    }
};
Publié 139 articles originaux · loué 8 · 10 000+ vues

Je suppose que tu aimes

Origine blog.csdn.net/qq_27690765/article/details/105098977
conseillé
Classement