面试题 16.06. 最小差
题目描述
给定两个整数数组a和b,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差
原题请参考链接https://leetcode-cn.com/problems/smallest-difference-lcci/
题解
方法一 【双指针】
class Solution:
def smallestDifference(self, a: List[int], b: List[int]) -> int:
p0 =0 # 指向第一个列表的指针
p1 = 0 # 指向第二个列表的指针
l0 = len(a)
l1 = len(b)
a.sort()
b.sort()
res = 2147483647
while p0 < l0 or p1 < l1:
res = min(res,abs(a[p0]-b[p1]))
if a[p0] <= b[p1] and p0+1 < l0:
p0 += 1
elif a[p0] > b[p1] and p1+1 < l1:
p1 += 1
elif a[p0] <= b[p1] and p0+1>=l0 and p1+1 < l1:
p1 += 1
elif a[p0] > b[p1] and p1+1 >= l1 and p0+1< l0:
p0 += 1
else:
break
return res
python

浙公网安备 33010602011771号