java - 查找两个列表的元素之间的最大差异
问题描述
我的代码是:
int diff = 0;
for (int i = 0; i<listOne.size(); i++)
{
for (int j = 0; j<listTwo.size(); j++)
{
if (listOne.get(i)-listTwo.get(j)>diff)
diff = listOne.get(i)-listTwo.get(j);
if (listTwo.get(j)-listOne.get(i)>diff)
diff = listTwo.get(j)-listOne.get(i);
}
}
return diff;
任务是找出两个输入列表中任意两个数字之间的最大差异(差异必须在列表一中的数字和列表二中的数字之间)。
我无法判断我的代码有什么问题。
解决方案
您可能缺少在 diff 上执行的Math.abs。差值是绝对值,因此 5 到 7 和 7 到 5 之间的差值相同 - 2
。
int diff = 0;
for (int i = 0; i<listOne.size(); i++) {
for (int j = 0; j<listTwo.size(); j++) {
int elementDiff = Math.abs(listOne.get(i)-listTwo.get(j));
if (elementDiff>diff) {
diff = elementDiff;
}
}
}
return diff;
所以下面的两条线都会产生相同的结果:
int elementDiff = Math.abs(listOne.get(i)-listTwo.get(j));
int elementDiff = Math.abs(listTwo.get(i)-listOne.get(j));
推荐阅读
- python - 无法导入 spacy
- javascript - 在 javascript 中以 200 毫秒的时间步长插值坐标
- ansible - 从库存中选择一台可用的服务器
- java - 列表到列表副本之间的Java差异
- pickle - 如何从 .pkl 文件加载预训练 GAN?
- django - 状态 415 图片上传 DRF
- unity3d - 如何统一修改基于Png图像的3d车辆颜色
- c++ - C++中矩阵的最小值
- python - 使用apscheduler时如何只登录一次?
- python - jinja2.exceptions.TemplateSyntaxError:遇到未知标签'while'