假设我们有两个列表L1和L2,我们必须找到L1的数字和L2的数字之间的最小差。
因此,如果输入像L1 = [2,7,4],L2 = [16,10,11],那么输出将是3,因为最小的差是10-7 = 3。
为了解决这个问题,我们将遵循以下步骤-
排序列表L1和排序列表L2
ans:=无限
i:= 0,j:= 0
当i <L1的大小而j <L2的大小时
j:= j + 1
我:=我+ 1
ans:= ans和| L1 [i]-L2 [j] |的最小值
如果L1 [i] <L2 [j],则
除此以外,
返回ans
让我们看下面的实现以更好地理解-
class Solution: def solve(self, L1, L2): L1.sort() L2.sort() ans = float("inf") i = j = 0 while i < len(L1) and j < len(L2): ans = min(ans, abs(L1[i] - L2[j])) if L1[i] < L2[j]: i += 1 else: j += 1 return ans ob = Solution()L1 = [2, 7, 4] L2 = [16, 10, 11] print(ob.solve(L1, L2))
[2, 7, 4], [16, 10, 11]
输出结果
3