C++ 数组距离计算 - 算法实现及示例
C++ 数组距离计算
题目描述
有两个分别为 'n' 和 'm' 的数组 'x[]' 和 'y[]'。从 'x' 中任意取出一个元素 'x[i]',然后从 'y' 中任取一个元素 'y[j]',他们的差的绝对值为 '|x[i] - y[i]|',一共有 'n × m' 对这样的差值,其中最小的值称为数组的距离。
请你写一个程序求出数组的距离。
输入
输入第一行两个整数 'n, m' (1 ≤ n, m ≤ 10^6)。
接下来一行输入 'n' 个整数表示数组 'x'。
接下来一行输入 'm' 个整数表示数组 'y'。
输入的数组元素绝对值小于等于 10^8。
输出
输出一行一个整数表示两个数组的距离。
样例输入
3 2
1 2 3
4 5
样例输出
1
样例输入
4 3
10 20 30 40
15 25 35
样例输出
5
样例输入
2 2
100000000 200000000
300000000 400000000
样例输出
100000000
C++ 代码实现
#include <iostream>
#include <algorithm>
#include <climits>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
int x[n], y[m];
for (int i = 0; i < n; i++) {
cin >> x[i];
}
for (int i = 0; i < m; i++) {
cin >> y[i];
}
int minDistance = INT_MAX;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
int distance = abs(x[i] - y[j]);
minDistance = min(minDistance, distance);
}
}
cout << minDistance << endl;
return 0;
}
算法解释
- 读取输入:首先读取两个数组的长度 'n' 和 'm',以及两个数组的元素。
- 初始化最小距离:将最小距离 'minDistance' 初始化为最大值 'INT_MAX'。
- 遍历数组:使用两层循环遍历两个数组的所有元素组合。
- 计算距离:对于每个元素组合,计算它们的差的绝对值 'distance'。
- 更新最小距离:比较当前距离 'distance' 和最小距离 'minDistance',并更新 'minDistance' 为较小的值。
- 输出结果:最后输出 'minDistance' 作为两个数组的距离。
总结
本文介绍了如何使用 C++ 计算两个数组的距离,并提供了完整的代码实现和算法解释。读者可以根据本文提供的代码和算法,轻松实现自己的数组距离计算程序。
原文地址: https://www.cveoy.top/t/topic/qaj9 著作权归作者所有。请勿转载和采集!