首页 > 试题广场 >

最大差值

[编程题]最大差值
  • 热度指数:2468 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
给定一个未排序的数列,找到此数列在已排序状态下的两个相邻值的最大差值,少于两个值时返回0。例如:给定数列 [1,3,2,0,1,6,8] 则 最大差值为3。注意:请尽量使用时间复杂度为O(n)的方案。

输入描述:
第一行输入单个整数N作为数列的大小,第二行输入所有数列中的元素M,共N个。0 < N <= 1000000, 0 < M < 2100000000


输出描述:
数列的最大差值
示例1

输入

3
1 10 5

输出

5

python两行解法。

注意第一个输入不是数组的长度,不是数组的长度!!!!如果用利用它来遍历数组,会出现越界的情况。太坑了吧

mother_***er, arr = int(input()), sorted(map(int, input().split()))
print(max(map(lambda c: arr[c] - arr[c - 1], range(1, len(arr)))) if len(arr) > 1 else 0)
编辑于 2019-02-24 19:41:05 回复(6)