dados dos enteros boreal y X, la tarea es encontrar una matriz de salida Arr[] que contiene enteros diferentes de largo boreal por lo que su media es k y la diferencia entre el minúsculo y el mayor es mínimamente posible.
Aporte: boreal † 4, X = 8
Salida:- 6 7 9 10
Explicación: La media de 6, 7, 9, 10 es claramente 8 y
La diferencia entre el mayor y el minúsculo es (10 – 6) = 4.Aporte: boreal = 5, X = 15
Salida: 13 14 15 16 17
Enfoque: El problema se puede resolver con saco en la próximo observación matemática:
- Para que la diferencia entre max y min sea mínima, el espacio entre los fundamentos ordenados debe ser minúsculo.
- Para hacer esto, cada tipo regular debe tener una diferencia mínima con respecto a la media de la matriz.
- Entonces, la fracción de los fundamentos deben estar a la izquierda de K y la otra fracción a la derecha y debe acontecer una diferencia = 1 entre ellos.
- Si el valía de n es imparentonces K puede estar presente en la matriz.
- Si el valía de n es par, entonces K no puede ser una parte (porque entonces los fundamentos a la izquierda de K ya la derecha de K no son lo mismo). Los dos fundamentos del medio son K-1 y K+1 y todos los fundamentos en las partes izquierda y derecha tienen una diferencia adyacente = 1.
Siga los pasos a continuación para solucionar este problema según la idea precursor:
- Comprobar el tamaño de la matriz de salida (NORTE) es par o impar
- Si es par, imprima todos los números de (MN/2 hasta M+N/2) excepto medida uno mismo.
- De lo contrario, imprima todos los números de (MN/2 hasta M+N/2) incluido señor.
A continuación se muestra la implementación del enfoque precursor:
C++
|
Complejidad del tiempo: EN)
cuarto auxiliar: O(1)