LeetCode in Kotlin

1200. Minimum Absolute Difference

Easy

Given an array of distinct integers arr, find all pairs of elements with the minimum absolute difference of any two elements.

Return a list of pairs in ascending order(with respect to pairs), each pair [a, b] follows

Example 1:

Input: arr = [4,2,1,3]

Output: [[1,2],[2,3],[3,4]]

Explanation: The minimum absolute difference is 1. List all pairs with difference equal to 1 in ascending order.

Example 2:

Input: arr = [1,3,6,10,15]

Output: [[1,3]]

Example 3:

Input: arr = [3,8,-10,23,19,-4,-14,27]

Output: [[-14,-10],[19,23],[23,27]]

Constraints:

Solution

class Solution {
    fun minimumAbsDifference(arr: IntArray): List<List<Int>> {
        val result: MutableList<List<Int>> = ArrayList()
        var min = 10000000
        arr.sort()
        var i = 0
        while (i + 1 < arr.size) {
            val diff = arr[i + 1] - arr[i]
            if (diff <= min) {
                if (diff < min) {
                    min = diff
                    result.clear()
                }
                result.add(listOf(arr[i], arr[i + 1]))
            }
            i++
        }
        return result
    }
}