leetcode 算法题1200 (简单310) 最小绝对差
- 题目介绍
给你个整数数组 arr,其中每个元素都 不相同。
请你找到所有具有最小绝对差的元素对,并且按升序的顺序返回。
- 示例
输入:arr = [4,2,1,3]
输出:[[1,2],[2,3],[3,4]]
输入:arr = [1,3,6,10,15]
输出:[[1,3]]
输入:arr = [3,8,-10,23,19,-4,-14,27]
输出:[[-14,-10],[19,23],[23,27]]
- 提示
2 <= arr.length <= 10^5
-10^6 <= arr[i] <= 10^6
- 解法一
/**
* @param {number[]} arr
* @return {number[][]}
*/
var minimumAbsDifference = function(arr) {
arr.sort((n1, n2) => n1 - n2);
let i = 0, min = Number.MAX_SAFE_INTEGER, temp = [];
while(i < arr.length - 1) {
let d = arr[i + 1] - arr[i];
if(d === min) {
temp.push([arr[i], arr[i + 1]]);
} else if (d < min) {
temp = [[arr[i], arr[i + 1]]];
min = d;
}
i++;
}
return temp;
};
执行用时 : 192 ms, 在所有 JavaScript 提交中击败了90.67%的用户
内存消耗 : 43.6 MB, 在所有 JavaScript 提交中击败了100.00%的用户