题目描述
已知元素从小到大排列的两个数组 x[] 和 y[],请写出一个程序算出两个数组彼此之间差的绝对值中最小的一个,这叫做数组的距离。
输入格式:
输入共 3 行。
第一行为两个整数 m,n,分别代表数组 f[],g[] 的长度。
第二行有 m 个元素,为数组 f[]。
第三行有 n 个元素,为数组 g[]。
输出格式:
输出数组的最短距离。
样例输入
5 5
1 2 3 4 5
6 7 8 9 10
样例输出
1
数据范围
对于 100% 的数据,保证 1≤m,n≤1000。
来源/分类(难度系数:一星)
排序 递推
完整代码展示:
a,b=map(int,input().split())
c=list(map(int,input().split()))
d=list(map(int,input().split()))
e=[]
for i in range(0,len(c)):
for j in range(0,len(d)):
f=abs(c[i]-d[j])
e.append(f)
e.sort()
print(e[0])
代码解释:
“a,b=map(int,input().split()) ”,让用户分别输入两个数组的长度a,b。
“c=list(map(int,input().split()))
d=list(map(int,input().split())) ”,让用户分别输入两个数组中的元素,并将其分别储存在列表c,d中。
“e=[]
for i in range(0,len(c)):
for j in range(0,len(d)):
f=abs(c[i]-d[j])
e.append(f) ”,建立一个空列表e,接着遍历c,d中元素,将c[i]-d[j]的绝对值添加进e中。
“e.sort()
print(e[0]) ”,对e中元素进行升序排序,打印e[0]。
运行效果展示:
(声明:以上内容均为原创)