数组两点之间的Java距离?

时间:2014-09-19 16:02:51

标签: java

所以这是一个独特的问题,我将不胜感激任何帮助。

目标: 计算并返回距离'的整数从最小值到最大值。 列表未排序,不应排序。 最小值可能在max或vise-verse之前。 在{2,-5,-7,8,22,-10}的答案中,答案= 1(从-10到22的距离) 在{2,-5,-7,8,22,-6}的答案中,答案= 2(从-7到22的距离)

感谢您的帮助。

2 个答案:

答案 0 :(得分:6)

只需跟踪相应的索引:

double min = list[0];
int minIndex = 0;
double max = list[0];
int maxIndex = 0;
for (int i =1 ; i < list.length ; i++) {
    if(min > list[i]){
        min = list[i];
        minIndex = i;
    }
    if(max < list[i]){
        max = list[i];
        maxIndex = i;
    }
}
int res = Math.abs(minIndex - maxIndex);

答案 1 :(得分:2)

在找到maxmin时保持指责:

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

int distance = Math.abs(indMax - indMin);