Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的Java代码中发生了什么事情使得答案是否定的? minandmax之间的公共静态int距离(双[]列表){ if(list==null | | list.length==0)返回0; int min=0; int max=0; for(int i=1;i列表[i]) { min=i; } 如果(列表[max]_Java - Fatal编程技术网

我的Java代码中发生了什么事情使得答案是否定的? minandmax之间的公共静态int距离(双[]列表){ if(list==null | | list.length==0)返回0; int min=0; int max=0; for(int i=1;i列表[i]) { min=i; } 如果(列表[max]

我的Java代码中发生了什么事情使得答案是否定的? minandmax之间的公共静态int距离(双[]列表){ if(list==null | | list.length==0)返回0; int min=0; int max=0; for(int i=1;i列表[i]) { min=i; } 如果(列表[max],java,Java,好的,练习的重点是找到从最大索引到最小索引的距离。不管怎样,我的测试用例都搞砸了。我会期待1,然后得到-1。期望3,得到-3。等等我假设它必须是整数距离…=最大-最小线。但即使我把它们翻过来,结果仍然是负面的 我什么都试了好几个小时了。是否有人对此处可能出现的导致答案为否定的错误有任何意见 注意:您不能将publicstaticinc更改为double。尝试此解决方案 public static int distanceBetweenMinAndMax (double[] list) {

好的,练习的重点是找到从最大索引到最小索引的距离。不管怎样,我的测试用例都搞砸了。我会期待1,然后得到-1。期望3,得到-3。等等我假设它必须是整数距离…=最大-最小线。但即使我把它们翻过来,结果仍然是负面的

我什么都试了好几个小时了。是否有人对此处可能出现的导致答案为否定的错误有任何意见

注意:您不能将publicstaticinc更改为double。

尝试此解决方案

    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;
}   
minandmax之间的公共静态int距离(双[]列表){
if(list==null | | list.length==0)返回0;
双最小值=0;
双最大值=0;
int mxi=0;
int-mni=0;
for(int i=0;i列表[i])
{
min=列表[i];
mni=i;
}
如果(最大值<列表[i])
{
max=列表[i];
mxi=i;
}
}
minandmax=mxi-mni之间的int距离;
返回minandmax之间的距离;
} 
因此,如果结果为(-),则最大值在最小值索引之前 如果结果为(+),则最大值在最小值索引之后

public static int distanceBetweenMinAndMax (double[] list) {

    if (list == null || list.length == 0) return 0; 

    double min = 0;
    double max = 0;
    int mxi=0;
    int mni=0;

    for (int i = 0; i < list.length; i++) 
    {
        if (min > list[i]) 
        {
            min = list[i];
            mni=i;
        }
        if (max < list[i]) 
        {
            max = list[i];
            mxi=i;
        }

    }
    int distanceBetweenMinandMax = mxi - mni;
    return distanceBetweenMinandMax;
} 
致:

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


minandmax=Math.abs(min-max)之间的int距离

@Ptoh64您的代码几乎是正确的,实际上只有当数组中的最大值早于最小值时,您才能获得负距离。我的意思是数组中最大值的索引小于最小值的索引

必须返回最大值和最小值的绝对差值,以避免距离e.i为负值

int distanceBetweenMinandMax = max>min?(max-min):(min-max);
除上述更改外,整个代码将是相同的

int distanceBetweenMinandMax = Math.abs(max - min)
minandmax之间的公共静态int距离(双[]列表){
if(list==null | | list.length==0)
返回0;
int min=0;
int max=0;
for(int i=1;i列表[i]){
min=i;
}
如果(列表[max]<列表[i]){
max=i;
}
}
int distance betweenMinandmax=Math.abs(max-min);//这里取绝对差
返回minandmax之间的距离;
}

您的练习是否真的分别比较了列表的索引或值?不管怎么说,乍一看,我觉得你的
是错误的。因此,要找到最小值,您应该使用
if(list[min]
来找到最大值。您可以添加一个计算不正确的测试用例吗?您应该返回
Math.abs(max-min)
。重点是比较索引。因此,如果你有[0,1,12],你希望结果是它们之间有多少个空格。我也不能使用数学或导入任何东西。@ptoh64要求澄清,请发布准确的问题陈述。您的“好的,练习的重点是找到从最大索引到最小索引的距离。”非常令人困惑。
练习的重点是找到从最大索引到最小索引的距离。
键入不匹配错误。无法将double转换为Int更改类型,我编辑了解决方案,您可以尝试任何一种,但最后一种更好您不允许在这里使用。我知道了,您想要索引距离,因此编辑了代码,希望它能满足您的需要
int distanceBetweenMinandMax = Math.abs(max - min)
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 = Math.abs(max - min);  // here take absolute difference
        return distanceBetweenMinandMax;
    }