首页 > 试题广场 >

最大差值

[编程题]最大差值
  • 热度指数:1633 时间限制: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
import sys
n = int(sys.stdin.readline().strip()) def maxnum(initlist):
    li = []
    n = len(initlist) for i in range(n):
        num = initlist[i] - initlist[i-1]
        li.append(num) return max(li)
initlist = list(map(int, sys.stdin.readline().strip().split()))
initlist = sorted(initlist)
result = maxnum(initlist) print result
发表于 2017-08-25 13:12:45 回复(0)