LEETCODE | PYTHON | 1200 | 最小绝对差
1. 题目
给你个整数数组 arr,其中每个元素都 不相同。
请你找到所有具有最小绝对差的元素对,并且按升序的顺序返回。
每对元素对 [a,b] 如下:
a , b 均为数组 arr 中的元素
a < b
b - a 等于 arr 中任意两个元素的最小绝对差
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/minimum-absolute-difference
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 代码
class Solution:
def minimumAbsDifference(self, arr: List[int]) -> List[List[int]]:
#数组排序
arr.sort()
#构建空list存储差值
mat = []
#结果初始化
MinGap = arr[1]-arr[0]
res = []
#遍历数组计算差值
for i in range(1,len(arr)):
#计算差值
Gap = arr[i] - arr[i-1]
#判断差值与MinGap的关系
#若相等则添加结果
if Gap == MinGap:
res.append([arr[i-1],arr[i]])
#若小于则清除原有结果,写入新结果
elif Gap<MinGap:
res = [[arr[i-1],arr[i]]]
MinGap = Gap
return res