tema
[Descripción del problema]
En la secuencia a_1, a_2,…, a_n, defina la distancia entre dos elementos a_i y a_j como | ij | + | a_i-a_j |, es decir, el valor absoluto de la distancia del subíndice del elemento más la diferencia del valor del elemento, Donde | x | representa el valor absoluto de x.
Dada una secuencia de números, averigüe la mayor distancia entre elementos.
[Formato de entrada]
La primera línea de entrada contiene un número entero n.
La segunda línea contiene n números enteros a_1, a_2,…, a_n. Los números enteros adyacentes están separados por espacios para indicar una secuencia dada de números.
[Formato de salida] La
línea de salida contiene un número entero para indicar la respuesta.
[Entrada de muestra]
5
9 4 2 4 7
[Salida de muestra]
9
[Descripción de muestra]
La distancia entre a_1 y a_3 es | 1-3 | + | 9-2 | = 9.
[Escala y convención
de casos de uso de evaluación ] Para el 50% de los casos de uso de evaluación, 2 <= n <= 100, 0 <= número en la secuencia <= 1000.
Para todos los casos de evaluación, 2 <= n <= 1000, 0 <= número en la serie <= 10000.
insinuación
Los arreglos con subíndice 0 no están involucrados en la operación, y se requiere n + 1 al crear el arreglo,
como int arr [] = new int [n + 1];
Ideas para resolver problemas
Defina por separado un método para obtener el valor absoluto, llame a este método siempre que desee obtener el valor absoluto
Código
import java.util.Scanner;
public class Main {
//蓝桥杯要求class命名为Main,且无package
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n=scanner.nextInt();
int arr[] = new int[n+1];
int max=0;
for(int i=1;i<n+1;i++){
arr[i]=scanner.nextInt();
}
for(int i=1;i<n+1;i++){
for(int j=i+1;j<n+1;j++){
int distance = f(j,i)+f(arr[i],arr[j]); //distance代表距离
if(distance>max){
max=distance;
}
}
}
System.out.println(max);
}
public static int f(int a,int b){
//取绝对值
return a>=b?a-b:b-a; //返回绝对值
}
}