java - 我的 Java 代码中发生了什么使答案是否定的?
问题描述
public static int distanceBetweenMinAndMax (double[] list) {
if (list == null || list.length == 0) return 0;
int min = 0;
int max = 0;
for (int i = 1; i < list.length; i++)
{
if (list[min] > list[i])
{
min = i;
}
if (list[max] < list[i])
{
max = i;
}
}
int distanceBetweenMinandMax = max - min;
return distanceBetweenMinandMax;
}
好的,练习的重点是找到从最大索引到最小索引的距离。无论如何,我的测试用例都搞砸了。我会期待1并得到-1。期望 3 并得到 -3。等等。我认为它必须是 int 距离... = max - min 线。但即使我翻转它们,结果仍然是否定的。
我已经尝试了几个小时。是否有人对这里可能出现的问题有任何意见,导致答案是否定的?
注意:您不能将 public static inc 更改为 double。
解决方案
使用 Math.abs(min-max) -- 因为 Max 和 Min 值的索引位置可以根据输入交叉
int distanceBetweenMinandMax = Math.abs(min - max);
推荐阅读
- html - 为什么我的电子邮件 HTML 在 Outlook 中呈现错误?
- yaml - 试图在 Cygwin 中关闭 Vim
- javascript - 如何在javascript中构建带有详细信息标签的树结构
- sql - 奇怪的 Oracle Apex 错误,不存在的错字
- css - 如何让 CSS 轮廓走投无路?
- node.js - 消费者有没有办法向使用 kafka(kafka.js) 和 node.js 实现的生产者发送确认?
- javascript - 如何从角度范围之外重新加载我的 angluarjs 自定义指令?
- micronaut - 如何在不从 Micronaut 重新启动应用程序的情况下查看我的更改?
- javascript - Primevue Textarea 没有样式
- vba - VBA嵌套循环 - 外循环不跳转到下一个值