Dada una matriz A[] de norte elementos, la tarea es Prefijo-MEX matriz para esta matriz dada. Matriz de prefijo-MEX B[] de una matriz A[] está hecho de tal manera que MEX de A[0] a A[i] es B[i]†
MEX de una matriz se refiere al entero no negativo faltante más pequeño de la matriz.
Ejemplos:
Aporte: A[] = {1, 0, 2, 4, 3}
Salida:: 0 2 3 3 5
Explicación: En la matriz A, los elementos
Hasta el 1er índice, los elementos son [1] y mex al 1er índice es 0.
Hasta el 2do índice, los elementos son [1, 0] y mex al segundo índice es 2.
Hasta el 3er índice, los elementos son [ 1, 0, 2] y mex al tercer índice es 3.
Hasta el 4º índice, los elementos son [ 1, 0, 2, 4] y mex al cuarto índice es 3.
Hasta el índice 5, los elementos son [ 1, 0, 2, 4, 3] y mex al quinto índice es 5.
Entonces nuestra última matriz sería B [0, 2, 3, 3, 5]†Aporte: A[] † [ 1, 2, 0 ]
Salida:† [ 0, 0, 3 ]
Explicación: En la matriz A, los elementos
Hasta el 1er índice, los elementos son [1] y mex al 1er índice es 0.
Hasta el 2do índice, los elementos son [1, 2] y mex al segundo índice es 0.
Hasta el 3er índice, los elementos son [ 1, 2, 0] y mex al tercer índice es 3.
Entonces nuestra última matriz sería B [0, 0, 3]†
Enfoque ingenuo: La forma más fácil de resolver el problema es:
Para cada elemento en imi (0 ≤ i < N)índice de la matriz A[]encontrar MEX de 0 a yo y guárdalo B[i]†
Siga los pasos a continuación para implementar la idea:
- Repita la matriz de Yo = 0 a N-1†
- Para cada imi índice en matriz A[]†
- Devolver la matriz resultante B[] al final.
Complejidad del tiempo: A2†
cuarto auxiliar: A)
Enfoque eficiente: Este enfoque se basa en el uso de la estructura de datos Set.
Un conjunto almacena datos en orden ordenado. Podemos aprovechar esto y almacenar todos los enteros no negativos hasta el valor máximo de la matriz. Luego itere a través de cada elemento de la matriz y elimine los datos visitados del conjunto. El elemento más pequeño que queda es el MEX para ese índice.
Siga los pasos a continuación para implementar la idea:
- Encuentre el elemento máximo de la matriz A[]†
- Haz un set y guarda las canciones de 0 hasta el elemento máximo del conjunto.
- Recorra la matriz de Yo = 0 a N-1†
- Para cada elemento, elimine ese elemento del conjunto.
- Ahora encuentre el elemento más pequeño que queda en el conjunto.
- Este es el prefijo MEX para el imi elemento. Almacene este valor en la matriz resultante.
- Devuelve la matriz resultante como la respuesta requerida.
A continuación encontrará la implementación del enfoque anterior.
C++
|
Complejidad del tiempo: O(N * registro N )
- O(N) para repetir el vector, y
- O(log N) para insertar y quitar el elemento del conjunto.
cuarto auxiliar: A)