十一届蓝桥模拟赛 元素之间最大的元素距离 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!

发布了217 篇原创文章 · 获赞 453 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/weixin_43771695/article/details/105609989