Вот алгоритм линейного времени, использующий хеш-таблицу.
Начать с элементов хеша L1
(с элементом, являющимся ключом хеша, и индексом, являющимся значением), если он еще не хеширован.
Далее, элемент foreach в L2
проверяет, был ли хэширован элемент, если да, выведите сумму индекса элемента в L2
и значение хеша (индекс того же элемента в L1
) выход.
Если в хеш-таблице не найден элемент L2
, выведите 0
и выйдите.
Алгоритм:
foreach ele N in L1 at position pos
if N not in hash
hash[N] = pos
end-if
end-foreach
foreach ele N in L2 at position pos
if N in hash
print pos + hash[N]
exit
end-if
end-foreach
print 0