该方法返回一个array
中元素之间的最大绝对差值。它会计算array
中所有数字之间的差异,但我试图将其调整为返回最大绝对差值的索引。数组中的元素
例如:
Array = [7, 19, 5, 10, 16, 8, 1, 19, 6, 13]
Index = [0, 01, 2, 03, 04, 5, 6, 07, 8, 09]
在此阵列中,最大的绝对差18
(= 1-19)和它在索引号6
发生。另外,如果存在多个相等的差异,则该方法需要返回较高索引中的一个。在上面的例子中,它将返回指数3
而不是0
Array = [1, 19, 5, 1, 19]
Index = [0, 01, 2, 3, 04]
这个问题有点复杂,我没有搞清楚如何做到这一点。有人知道吗?
public static int stepMaxDiff(int[] array){
int diff = 0;
int max = 0;
if (array.length == 0){ // Checks for empty array and returns -1
return -1;
}
for (int i = 0; i < array.length - 1; ++i){ // i is the element in the array
if (i == array.length - 1){
diff = Math.abs(array[i] - array[0]);
// Calculates the last element of the array minus the first one
} else {
diff = Math.abs(array[i] - array[i+1]);
// Calculates the element i minus element [i+1]
}
max = diff >= max ? diff : max;
}
return max;
}
这是一个assignement?我相信你能做到。只需一支钢笔和一张纸,一步一步地尝试。问问自己正确的问题。这是纯粹的逻辑,没有别的。 –