09 Sept 2026Go / Python / TypeScriptEasy

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

Gominimum-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
}
Pythonminimum-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
TypeScriptminimum-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;
}