跳到主要内容

简述Java实现数组中所有数对的最大差值 ?

参考答案:

要找出数组中所有数对的最大差值,我们需要对数组进行排序,然后遍历排序后的数组以找出最大差值。下面是Java实现的示例代码:

import java.util.Arrays;

public class MaxDifferenceInArray {

    public static void main(String[] args) {
        int[] arr = {4, 2, 9, 7, 5, 1};
        System.out.println("最大差值: " + findMaxDifference(arr));
    }

    public static int findMaxDifference(int[] arr) {
        if (arr == null || arr.length < 2) {
            return 0;
        }

        Arrays.sort(arr); // 对数组进行排序

        int maxDiff = arr[1] - arr[0]; // 初始化最大差值为排序后数组中前两个元素的差值

        for (int i = 2; i < arr.length; i++) {
            maxDiff = Math.max(maxDiff, arr[i] - arr[0]); // 更新最大差值
        }

        return maxDiff;
    }
}

在这个示例中,我们首先定义了一个名为findMaxDifference的方法,该方法接受一个整数数组作为参数,并返回数组中所有数对的最大差值。

findMaxDifference方法中,我们首先检查数组是否为空或长度小于2。如果是,我们直接返回0,因为无法形成数对。

然后,我们使用Arrays.sort()方法对数组进行排序。排序后,数组中的最小元素将位于数组的第一个位置,而最大元素将位于数组的最后一个位置。

接下来,我们初始化最大差值为排序后数组中前两个元素的差值。这是因为最大差值至少为排序后数组中最小元素和次小元素之间的差值。

然后,我们使用一个循环从数组的第三个元素开始遍历数组。在每次迭代中,我们计算当前元素与数组中最小元素之间的差值,并使用Math.max()方法更新最大差值。

最后,我们返回最大差值作为结果。

main方法中,我们创建了一个示例数组并调用findMaxDifference方法来计算最大差值,并将结果打印到控制台上。