两数组最短距离 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 已知元素从小到大排列的两个数组x[]和y[],请写出一个程序算出两个数组彼此之间差的绝对值中最小的一个,这叫做数组的距离。 输入 第一行为两个整数m, n(1≤m, n≤1000),分别代表数组f[], g[]的长度。 第二行有m个元素,为数组f[]。 第三行有n个元素,为数组g[]。 输出 数组的最短距离。 示例输入 5 5 1 2 3 4 5 6 7 8 9 10 示例输出 1 #include <stdio.h> int abs(int n) { return n>0?n:-n; } int main() { int m,n,i,j,t,min; int f[1000],g[1000]; scanf("%d %d",&m,&n); for (i=0;i<m;i++) scanf("%d",&f[i]); for (i=0; i<n;i++) scanf("%d",&g[i]); min = abs(f[0]-g[0]); i=0;j=0; while(i<m) { if(f[i]<g[j]) { t=abs(f[i]-g[j]); if(t< min) min = t; i++; } else if(f[i]==g[j]) { min=0; break; } else { j++; if(j>=n) { i++; j=0; } } } printf("%d\n", min); return 0; }