题目:
给你个整数数组 arr,其中每个元素都 不相同。
请你找到所有具有最小绝对差的元素对,并且按升序的顺序返回。
示例 1:
输入:arr = [4,2,1,3]
输出:[[1,2],[2,3],[3,4]]
示例 2:输入:arr = [1,3,6,10,15]
输出:[[1,3]]来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-absolute-difference
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
先排序,遍历得出两个值之间的最小值。然后再遍历一次,将差为最小值的push进数组。
代码:
/**
* @param {number[]} arr
* @return {number[][]}
*/
var minimumAbsDifference = function(arr) {
arr.sort(function(a,b){
return a-b;
})
var min=arr[1]-arr[0];
var re=[];
for(var i=2;i<arr.length;i++){
var a_min=arr[i]-arr[i-1];
min=Math.min(min,a_min);
}
for(var i=1;i<arr.length;i++){
var d=[];
if(min==arr[i]-arr[i-1]){
d.push(arr[i-1]);
d.push(arr[i]);
re.push(d)
}
}
return re;
};