📜  门| Gate IT 2008 |问题27(1)

📅  最后修改于: 2023-12-03 15:12:39.317000             🧑  作者: Mango

门| Gate IT 2008 |问题27

问题描述

给定一组整数,编写一个程序,找到此组数字的最大相邻差。相邻差定义为相邻数字之间的差的绝对值。例如,数组{2,4,1,0}的最大相邻差为3(|4-1|=3)。

输入格式

第一行输入一个整数 N,代表数组长度,1 ≤ N ≤ 10^6。

接下来 N 行,每行输入一个整数 Arr[i],代表数组中的一个整数,0 ≤ Arr[i] ≤ 10^9。

输出格式

一个整数,代表数组的最大相邻差。

样例输入
4
2
4
1
0
样例输出
3
解题思路

本题解法较为简单,首先对输入的数组进行排序,然后比较相邻两个数的差的绝对值,取最大值即可。

具体实现可参考下方 Python 代码片段。

n = int(input())
arr = [int(input()) for _ in range(n)]

arr.sort()

max_diff = 0
for i in range(1, n):
    diff = abs(arr[i]-arr[i-1])
    if diff > max_diff:
        max_diff = diff

print(max_diff)
总结

本题解法相对简单,重点在于数组排序和相邻元素之间的差的计算,需要注意细节,如数组长度为1时直接输出0。