問題描述
在數列 a_1, a_2, …, a_n中,定義兩個元素 a_i 和 a_j 的距離爲 |i-j|+|a_i-a_j|,即元素下標的距離加上元素值的差的絕對值,其中 |x| 表示 x 的絕對值。
給定一個數列,請問找出元素之間最大的元素距離。
輸入格式
輸入的第一行包含一個整數 n。
第二行包含 n 個整數 a_1, a_2, …, a_n,相鄰的整數間用空格分隔,表示給定的數列。
輸出格式
輸出一行包含一個整數,表示答案。
樣例輸入
5
9 4 2 4 7
思路:剛開始肯定懵,找道題眼,題目求的是兩個元素之間的差絕對值和下標的絕對值,定義輸入數字,然後利用枚舉。求差和下標,找出最大值輸出即可。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] arr = new int[n];
for (int i = 0; i < arr.length; i++) {
arr[i] = scanner.nextInt(); // 數組的輸入數據
}
int max = 0, num = 0; // 最大值和數字
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
num = Math.abs(i - j) + Math.abs(arr[i] - arr[j]); // 兩位數字差+下標差
max = Math.max(max, num); // 比出最大值
}
}
System.out.println(max);
}
}