资源限制
时间限制:1.0s 内存限制:256.0MB
最小距离
问题描述
数轴上有n个数字,求最近的两个数,即min(abs(x-y))
输入格式
第一行包含一个整数n。
接下来一行,表示n整数。
输出格式
一个整数表示最小距离
样例输入
6
7 3 4 11 9 17
样例输出
1
样例说明
取3和4
数据规模和约定
n<=100000
所有整数<=10^7
常规思路每个数与其他数相减,返回最小值 (必定超时)
n = input() m = list(map(int,input().split())) A =[] for i in m: for j in m: if i-j != 0: A.append(abs(i-j)) print(min(A))
我的思路:
1、求出每个数与最小数的差;
2、在排序求出每个差数与前一个差数的差,返回最小的差,就是结果。
n = input() m = list(map(int,input().split())) m.sort() A = [] B = [] for i in m[1:]: B.append(i-m[0]) B.insert(0,0) for i in range(len(B)-1): A.append(B[i+1]-B[i]) print(min(A))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)