题目链接:https://leetcode.cn/problems/minimum-absolute-difference/
思路
1.需要找出最小绝对值差
那我们是不是可以先从小到大排序arr数组,通过遍历数组找出arr[i]-arr[i-1]的最小绝对值差res。
2.需要我们找出所有最小绝对值差的元素对,并按升序排序
我们已经找出最小绝对值差,我们只要再对数组遍历一遍找出arr[i]-arr[i-1] = res的元素对,把他插入到ans数组里,因为我们之前已经对数组进行排序,所以我们找出的所有答案都是以升序存入ans数组
代码实现
func minimumAbsDifference(arr []int) (ans [][]int) { sort.Ints(arr) res := 10000000 for i := 1; i < len(arr) ;i++ { //找出最小绝对值差 if arr[i] - arr[i - 1] < res { res = arr[i] - arr[i - 1] } } for i := 1; i < len(arr) ;i++ { //找出最小绝对值差的元素对,并存入ans数组 if arr[i] - arr[i - 1] == res { ans = append(ans, []int{arr[i - 1], arr[i]}) } } return }