Я не человек алгоритма, так что простите за наивность вопроса.
У меня есть список A, содержащий элементы 100K элементов. У меня есть другой список B, содержащий 100K элементов. Допустим, a является элементом из списка A, b является элементом из списка B. Я хочу выяснить те (a, b) комбинации, сумма которых меньше 100.
Один очевидный способ сделать это заключается в следующем:
results = []
for a in A:
for b in B:
if (a+b) < 100:
results.append((a,b))
, но временная сложность этого подхода составляет O (n * m) = 100K * 100K, что довольно много. Существует ли какой-нибудь быстрый алгоритм, способный более эффективно вычислить желаемый результат - с точки зрения памяти и времени. Если да, можно ли это реализовать на python?