假设我声明一个数组:
int[] arr = {10,2,7,11,3};
此数组中最大(正)变化为 9,即 11 - 2 = 9。
我如何编写一个方法来找到代码中最大的变化,并且较小的整数更早出现?
谢谢,
最佳答案
因为我误解了这个问题,所以我重写了答案。
最简单但几乎肯定不是最有效的方法是检查每个更改并将其与前一个更改进行比较。如果更大,则丢弃前一个并记住这个。
int change = arr[1] - arr[0]; //give it an initial value, if we find a bigger change we will replace it
for(int i = 0; i < arr.length - 1; i++) {
for(int j = i + 1; i < arr.length; j++) {
if(arr[j]-arr[i] > change) {
change = arr[j]-arr[i];
}
}
}
即使没有积极的变化,这仍然会给出答案。如果您不希望这样,您可以对其进行修改。这是微不足道的。
请记住,arr.length - 1
在外循环中很重要。
关于java - 如何找到数组中变化最大的差异? - java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36707528/