09 Sept 2026•Go / Python / TypeScript•Easy

Minimum Absolute Difference

Return all value pairs having the smallest absolute difference in an array.

Sort the values so only adjacent pairs can attain the minimum, then retain all pairs tied at the smallest observed gap.

complexity

O(n log n) time and language-dependent sorting space.

solution files

  • Go minimum-absolute-difference/solution.go
  • Python minimum-absolute-difference/solution.py
  • TypeScript minimum-absolute-difference/solution.ts

Solution files

Go•minimum-absolute-difference/solution.go
package main

import "sort"

func minimumAbsDifference(arr []int) [][]int {
	sort.Ints(arr)
	best := int(^uint(0) >> 1)
	result := [][]int{}
	for index := 1; index < len(arr); index++ {
		difference := arr[index] - arr[index-1]
		if difference < best {
			best, result = difference, [][]int{}
		}
		if difference == best {
			result = append(result, []int{arr[index-1], arr[index]})
		}
	}
	return result
}
Python•minimum-absolute-difference/solution.py
class Solution:
    def minimumAbsDifference(self, arr: list[int]) -> list[list[int]]:
        arr.sort(); best = float(class="syntax-string">"inf"); result: list[list[int]] = []
        for left, right in zip(arr, arr[class="syntax-number">1:]):
            difference = right - left
            if difference < best: best, result = difference, []
            if difference == best: result.append([left, right])
        return result
TypeScript•minimum-absolute-difference/solution.ts
function minimumAbsDifference(arr: number[]): number[][] {
  arr.sort((left, right) => left - right); let best = Number.POSITIVE_INFINITY; const result: number[][] = [];
  for (let index = class="syntax-number">1; index < arr.length; index += class="syntax-number">1) { const difference = arr[index] - arr[index - class="syntax-number">1]; if (difference < best) { best = difference; result.length = class="syntax-number">0; } if (difference === best) result.push([arr[index - class="syntax-number">1], arr[index]]); }
  return result;
}