Organice la matriz de manera que los elementos adyacentes tengan menos espacio, lo que resulte en la suma mínima.
Tengo una matriz de números con un tamaño par, aquí está mi tarea:
a) Descartar cualquier par de elementos de la matriz.
b) Luego, emparejar los elementos y calcular la suma de las diferencias entre los elementos del par de tal manera que la suma sea mínima.
Ejemplo:
Tamaño de la matriz es par, digamos 8.
Elementos de la matriz: 1,3,4,6,3,4,100,200
Respuesta:
5
Explicación:
Aquí eliminaré 100 y 200, ya que al emparejarlos me da una diferencia de (200 – 100) = 100.
Por lo tanto, los elementos restantes son [1,3,4,6,3,4]
Los pares con la suma mínima son: (1 3), (4 3), (6 4).
= |3-1| = 2, |4-3|=1,|6-4| = 2. Por lo tanto, la suma es 2 + 1 + 2 = 5
Ejemplo:
Tamaño de la matriz es par, digamos 4.
Elementos de la matriz: 1,50,51,60
Respuesta:
1
Explicación: Aquí eliminaré 1 y 60, así obtendré la suma mínima.
Por lo tanto, los elementos restantes son [50,51], iguales a sus adyacentes [50 51] = 1. Mi código fallará para este caso y devolverá 49.
¿Cómo lograr esto en java?
Intenté ordenar los elementos de esta manera, pero este no es el enfoque correcto para todo tipo de entradas.
public static int process(int[] a) {
int n = a.length;
int n1 = n/2-1;
Arrays.sort(arr);
int sum = 0;
for(int i=0; i<n12; i+=2) {
sum += a[i+1] – a[i];
}
return sum;
} i+=”2)” {=”” sum=”” +=”a[i+1]” -=”” a[i];=”” }=”” return=”” sum;=””></n12; i+=2) {
sum += a[i+1] – a[i];
}
return sum;
}>
davy.ai
Para lograr la tarea de descartar dos elementos de un arreglo de tamaño par, emparejar los elementos restantes y calcular la suma de las diferencias entre los elementos del par de manera que la suma sea mínima en Java, podemos usar el siguiente enfoque:
Aquí está el código en Java para lo mismo:
Este enfoque tiene una complejidad temporal de O(n log n) debido a la ordenación del arreglo. Sin embargo, es un enfoque razonable para arreglos de tamaño pequeño.