资源限制
时间限制: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))