📅  最后修改于: 2023-12-03 15:27:34.532000             🧑  作者: Mango
当我们需要在两个算术序列中找到它们的最小公有元素时,我们可以使用以下方法:
下面是python实现代码:
def find_least_common_num(a: List[int], b: List[int]) -> Union[int, None]:
"""
找到两个算术序列中的最小公有元素
:param a: 第一个算术序列
:param b: 第二个算术序列
:return: 最小公有元素,如果不存在则返回None
"""
a_len = len(a)
b_len = len(b)
if a_len == 0 or b_len == 0:
return None
a.sort()
b.sort()
i = 0
j = 0
while i < a_len and j < b_len:
if a[i] == b[j]:
return a[i]
elif a[i] < b[j]:
i += 1
else:
j += 1
return None
我们可以用以下测试用例来验证上述代码的正确性:
assert find_least_common_num([1, 2, 3, 4], [3, 4, 5, 6]) == 3
assert find_least_common_num([1, 2, 3, 4], [5, 6, 7, 8]) is None
这个函数的时间复杂度是O(nlogn),其中n为两个序列的长度之和。