思路:
- 初始化 绝对差 res 为无限大
- 使用两个指针,一个指针指向数组 1,一个指针指向数组 2
- 比较两个指针指向的数字的大小,并更新较小的那个的指针,使其向后移动一位。
- 更新的过程顺便计算 res
class Solution:
def smallestDifference(self, a: List[int], b: List[int]) -> int:
a.sort()
b.sort()
res = float(inf)
i, j = 0, 0
while i < len(a) and j < len(b):
res = min(res, abs(a[i] - b[j]))
if a[i] < b[j]:
i += 1
elif a[i] > b[j]:
j += 1
else:
return 0
return res
复杂度分析:
- 时间复杂度:O(N)O(N)
- 空间复杂度:O(1)O(1)