[JAVA] Duda con un ejercicio.

Imagen

¿Alguna sugerencia?

Lo tengo hecho asi pero no se si habria alguna forma mejor:

import java.util.Scanner;

public class Ej45{

   public static void ej45(int v[]){
      int coste = 0;
      for (int i=0; i<v.length; i++){
         int posicion=Math.abs(v[i]-i);

         coste+=posicion;

         System.out.println(v[i]+" está a "+posicion+" de su posición, y su coste es "+coste);
      }
   }
   public static void main(String args[]){
      int v[] = {2,4,3,0,1};

      ej45(v);

   }
}
Grender escribió:¿Alguna sugerencia?


La primera que el hilo iría mejor en el foro de PC, reporto para que lo muevan. La segunda, que puedes empezar por poner qué o como lo has intentado.
Ordena el vector, después comparas la diferencia respecto a la posición en el vector ordenado.
Así a bote pronto...

int resultado = 0;
for (int i=0; i<array.length; i++) {
resultado += Match.abs(array[i] - i);
}
redscare escribió:Así a bote pronto...

int resultado = 0;
for (int i=0; i<array.length; i++) {
resultado += Match.abs(array[i] - i);
}

¿Podemos suponer que estan todos los elementos continuos?
Acabo de editar la forma en la que lo hice
5 respuestas