十一屆藍橋模擬賽 元素之間最大的元素距離 JAVA

問題描述
  在數列 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);                          
	}
}

小劇場:答應我,今天也要開心!Promise me to be happy today!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章