得到JAVA中数组差异的总和

Joh*_*Oak 1 java arrays

我有一个数组,我把我想要的数字的数量,它可以是5,它可能是100个数字,我有一个方法来计算两个数字之间的差异.

我想要开发的是一个进入数组的方法,并使用该getDifference方法计算第1和第2个数字,第2个数字和第3个数字,第3个数字和4个数字之间的差异,依此类推,直到结束数组然后返回所有差异的总和.有任何想法吗?

int[] myIntArray = new int[x numbers];

public int getDifference(int num1, int num2) {
    return num2-num1;    
}

public int getSumDifference(int[] numbers) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

我知道这种方法是错误的,它只是为了表达我的观点.

Mur*_*nik 7

正确的方法,恕我直言,是使用基本的数学来减少这个问题.对于大小为N的数组,您需要计算:

S = (a[1] - a[2]) + (a[2] - a[3]) + ... + (a[N-1] - a[N])
Run Code Online (Sandbox Code Playgroud)

所以,如果你打开括号并减少问题,你会得到:

S = a[1] - a[N]
Run Code Online (Sandbox Code Playgroud)

在Java中表示这一点应该很容易:

public int getSumDiference(int[] numbers){
    return numbers[0] - numbers[numbers.length - 1];
}
Run Code Online (Sandbox Code Playgroud)


And*_*eas 6

比方说,你的列表中有4个值:a,b,c,d.
所以差别是a - b,b - c,c - d.
总和是(a - b) + (b - c) + (c - d).
删除括号可以获得a - b + b - c + c - d.
既然-b + b什么都没有,我们得到a - d.

结果:第一个值减去最后一个值.

只是跳过所有中间计算,它们是浪费时间.