列表

详情


1200. 最小绝对差

给你个整数数组 arr,其中每个元素都 不相同

请你找到所有具有最小绝对差的元素对,并且按升序的顺序返回。

每对元素对 [a,b] 如下:

 

示例 1:

输入:arr = [4,2,1,3]
输出:[[1,2],[2,3],[3,4]]

示例 2:

输入:arr = [1,3,6,10,15]
输出:[[1,3]]

示例 3:

输入:arr = [3,8,-10,23,19,-4,-14,27]
输出:[[-14,-10],[19,23],[23,27]]

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: vector<vector<int>> minimumAbsDifference(vector<int>& arr) { } };

golang 解法, 执行用时: 84 ms, 内存消耗: 8.1 MB, 提交时间: 2021-06-11 14:50:02

func minimumAbsDifference(arr []int) (ans [][]int) {
    n := len(arr)
    sort.Ints(arr)
    base := arr[1] - arr[0]
    for i := 2; i < n; i++ {
        if arr[i] - arr[i-1] < base {
            base = arr[i] - arr[i-1]
        }
    }

    for i := 1; i < n; i++ {
        if arr[i] - arr[i-1] == base {
            ans = append(ans, arr[i-1:i+1])
        }
    }
    return

}

上一题