1055: 【数组的距离】

题目描述

已知元素从小到大排列的两个数组f[]和g[],请写出一个程序算出两个数组彼此之间差的绝对值中最小的一个,这叫做数组的距离

输入

第一行为两个整数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

当你测试数据时,利用2 3  0 1   2 3 4  来测试查看一下结果,此题还会优化(仅参考)

#include<iostream>//此题有问题,ojac没问题。
using namespace std;
int M(int n)
{
    if(n<0)
        return -n;
        else
    return n;
}
int main(){
    int x[1000];
    int y[1000];
    int a,b,c;
    cin>>a>>b;
    for(int i=0; i<a; i++)
    {
        cin>>x[i];
    }
    for(int j=0; j<b; j++)
    {
        cin>>y[j];
    }
     int t,min=2000;
    for(int l=0; x[l]; l++)
    {
        for(int k=0; y[k]; k++)
        {
            t=M(y[k]-x[l]);
            if(t<min)
            {
                min=t;
            }
        }
    }
    cout<<min<<endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/meng1ge/article/details/82702850