1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| from sortedcontainers import SortedSet
class Solution:
def minAbsoluteDifference(self, nums: List[int], x: int) -> int:
previous_numbers = SortedSet()
result = float('inf')
for i in range(x, len(nums)):
if result > 0:
previous_numbers.add(nums[i - x])
it = previous_numbers.bisect(nums[i])
if it != 0:
result = min(result, nums[i] - previous_numbers[it - 1])
if it != len(previous_numbers):
result = min(result, previous_numbers[it] - nums[i])
return result
|