目录
1. 前言
大家看到标题会不会有点懵,其实我第一次听到的时候也是这样想的,那还是在学校的时候,做的课后题,现在想想,时过境迁,繁华不一了。大家看博主的名字应该就知道,不必太执着,万事仍可期。
2. 正文
2.1 问题
题目描述:
已知元素从小到大排列的两个数组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
2.2 解决办法
2.2.1 思路
这个写的大多是情怀了,就是遍历,没有太大的技术含量,如果有,那就是优化代码的时间复杂度和空间复杂度,同学们可以自行发散。
看完题目之后,大家还是可以现场是写一下,必经过程和思路都是最重要的。
2.2.2 代码实现
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int main()
{
int data1_length, data2_length;
int temp;
vector<int> data1_in;
vector<int> data2_in;
cin >> data1_length >> data2_length;
for (int i = data1_length; i > 0; i--)
{
cin >> temp;
data1_in.push_back(temp);
}
for (int i = data2_length; i > 0; i--)
{
cin >> temp;
data2_in.push_back(temp);
}
temp = abs(data1_in.at(0) - data2_in.at(0));
for (int data1 : data1_in)
{
for (int data2 : data2_in)
{
temp = abs(data1 - data2) > temp ? temp : abs(data1 - data2);
}
}
cout << temp << endl;
data1_in.clear();
data2_in.clear();
return 0;
}
2.2.3 测试结果
结果如下
大家可以直接在这个线上的编译环境执行
3. 备注
>>>>>>
有些时候,大家编程,不足回调时出于什么想法,有人喜欢,有人为了生活。你们怎么看呢?欢迎评论区回复。
>>>>>>
生命是一条艰险的峡谷,只有勇敢的人才能通过。——米歇潘
>>>>>>
制作不易,且行且珍惜,点个关注支持下吧。