[Demostrar la seguridad OFERTA tiempo preguntas cara eficiencia 45]: el número mínimo de matriz dispuestas

título Descripción

Introduzca un array entero positivo, el conjunto de todos los números dispuestos en un número empalmados juntos, el empalme puede imprimir todos los números de uno más pequeño. 3,32,321 matriz de entrada} {por ejemplo, imprimir el número mínimo de tres números puede estar dispuesto para 321.323.

Ideas 1

La obtención de todos los elementos dispuestos en una matriz, y luego encontrar el número mínimo de los retornos. Buscando arreglo de cuerdas puede hacer referencia plano 38 preguntas: arreglo de cuerdas , la complejidad temporal del algoritmo es O (n!).

Ideas 2

De acuerdo con la siguiente matriz regla en orden ascendente: Para los dos números a y b, si a y b es menor que b y un empalme ab costura BA, luego se coloca en frente de una b, 9 y 10 109, por ejemplo, <910, por lo que 10 9 debe estar al frente. Después de que el elemento de salida puede reordenar. Código es el siguiente:

class Solution {
public:
    
    static bool cmp(int a, int b){
        string ab = to_string(a) + to_string(b);
        string ba = to_string(b) + to_string(a);
        return ab<ba;
    }
    
    string PrintMinNumber(vector<int> numbers) {
        string ans = "";
        if(numbers.empty())
            return ans;
        
        sort(numbers.begin(), numbers.end(), cmp);
        for(int i=0; i<numbers.size(); i++)
            ans += to_string(numbers[i]);
        return ans;
    }
};

Supongo que te gusta

Origin www.cnblogs.com/flix/p/12514287.html
Recomendado
Clasificación