Данные пяти отсортированных списков: 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)
EDIT 1: это не домашнее задание, кстати, вы можете проверить мои другие вопросы и убедитесь сами. спасибо ..
его не домашнее задание .. – bouncingHippo
Эти списки содержат поплавки или просто ints? – NominSim
эти списки содержат ints – bouncingHippo