给定五个排序列表:List1、List2、List3、List4、List5,每个列表的长度为 n。如果有 5 个 (int) 数字(每个列表中的 1 个),求和为零返回 true。我的目标是确保算法是 O(n)。在我的脑海中,我可以考虑创建一个包含 5 个链表之和的哈希映射,或者评估这 5 个列表,例如 [o(n*n*n*n*n)]。我正在寻找优化或降低复杂性的方法,但我陷入了困境。
我在 Python 中的代码:
def getIndicesFromFiveArrays(List1,List2,List3,List4,List5,t):
a,b,c,d,e=0,0,0,0,0
while(List1[a]+List2[b]+List3[c]+List4[d]+List5[e]!=t):
b=b+1
if b==len(List2):
return (-1,-1)
if List1[a]+List2[b]+List3[c]+List4[d]+List5[e]<t:
a=a+1
b=b-1
c=c-1
d=d-1
e=e-1
if a==len(List1):
return (-1,-1)
return (a,b,c,d,e)
编辑1:顺便说一句,这不是作业,您可以查看我的其他问题并自己验证。谢谢..