你能想出O(n+m)的算法吗?^_^ 加油!
代码:
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int f[1000],g[1000]; int i,m,n,min1,min2,a; 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]); min1=fabs(f[1]-f[0]); min2=fabs(g[1]-g[0]); for(i=1;i<m;i++) { if(min1>fabs(f[i+1]-g[i])) min1=fabs(f[i+1]-g[i]); } for(i=1;i<n;i++) { if(min2>fabs(g[i+1]-g[i])) min2=fabs(g[i+1]-g[i]); } a=(min1>min2)?min2:min1; printf("%d\n",a); return 0; }无运行结果,不会做的题。。
fabs:求绝对值
a=(min1>min2)?min2:min1:输出min 1和 min 2 中小的数