首页 > 解决方案 > 我的 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。

标签: java

解决方案


使用 Math.abs(min-max) -- 因为 Max 和 Min 值的索引位置可以根据输入交叉

int distanceBetweenMinandMax = Math.abs(min - max);


推荐阅读