Leetcode 56. Intervalo de fusión

Descripción del problema

Dado un conjunto de intervalos, combine todos los intervalos superpuestos.

Perder Entrar [ [ 1 , 3 ] , [ 2 , 6 ] , [ 8 , 10 ] , [ 15 , 18 ] ] Entrada: [[1,3], [2,6], [8,10], [15,18]]

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

Informe de resolución de problemas.

Ordene por el valor inicial del intervalo, luego los intervalos que se pueden combinar en esta lista ordenada deben ser continuos.

Código de implementación

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;
    }
};
Publicado 139 artículos originales · elogiado 8 · 10,000+ vistas

Supongo que te gusta

Origin blog.csdn.net/qq_27690765/article/details/105098977
Recomendado
Clasificación