1200. Minimum Absolute Difference

1200. Minimum Absolute Difference #

题目 #

  • 给你个整数数组 arr,其中每个元素都 不相同
  • 请你找到所有具有最小绝对差的元素对,并且按升序的顺序返回。
  • 每对元素对 [a,b] 如下:
    • a , b 均为数组 arr 中的元素
    • a < b
    • b - a 等于 arr 中任意两个元素的最小绝对差

思路 #

模拟 #

代码 #

模拟 #

class Solution {
    public List<List<Integer>> minimumAbsDifference(int[] arr) {
        Arrays.sort(arr);
        List<List<Integer>> ans = new LinkedList<>();
        int minDistance = Integer.MAX_VALUE;
        for (int i = 1; i < arr.length; i++) {
            int distance = arr[i] - arr[i-1];
            if (distance > minDistance) continue;
            if (distance < minDistance) {
                minDistance = distance;
                ans = new LinkedList<>();
            }
            List<Integer> pair = new LinkedList<>();
            pair.add(arr[i-1]); pair.add(arr[i]);
            ans.add(pair);
        }
        return ans;
    }
}

致谢 #