0%

20250503 LeetCode每日一题——1200. 最小绝对差

20250503 LeetCode每日一题——1200. 最小绝对差

哎,写的非常丑陋的一道简单题。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# -*- coding: utf-8 -*-

class Solution:
def minimumAbsDifference(self, arr: list[int]) -> list[list[int]]:
# 基本思路是先排个序,然后一一做差,求出最小绝对值差
# 之后再按照顺序遍历,使用双指针,求出所有符合条件的数值对
arr.sort()
left = 0
right = 1
min_abs = arr[1] - arr[0]
for i in range(1, len(arr)):
if (arr[i] - arr[i - 1]) < min_abs:
min_abs = arr[i] - arr[i - 1]

result = []
for i in range(1, len(arr)):
if (arr[i] - arr[i - 1]) == min_abs:
result.append([arr[i - 1], arr[i]])

return result


if __name__ == '__main__':
arr = [188, 9, -189, -112, 165, 4, -141, 179, -154, 258, 53, 71, 201, 204, 121, 215, 259, -22, 34, -213, -88, -192,
118, -221, 130, -86, 209]
print(Solution().minimumAbsDifference(arr))