java - 如何找到数组中变化最大的差异? - java

标签 java arrays

假设我声明一个数组:

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/

相关文章:

c# - List索引和Array索引的区别

java - 修剪列表元素中的字符

java - 使用泛型和 ActiveJDBC 模型

java - 如何只下载 rss 部分

java - 避免对大型日志消息进行字符串连接

java - JSP:如何将 HTML img 标签中的图像作为 blob 存储到数据库

c++ - 在排序和旋转的数组中搜索

javascript - 以正确的方式填充数组并充分利用它

java - 将 Json-Array 的 20 个对象拆分为单独的单个数组 json 文件?

java - 根据 2 个点和半径绘制圆弧