Для двух массивов A
и B
длина n. A
сортируется по возрастанию и B
сортируется по убыванию. Найти индекс i
, для которого "произведение" A[i]^2 + B[i]^2
минимально.
Мне нужно решение в O(log(n))
, которое является желаемой сложностью.
Пример:
>>> A
[0, 4, 10, 12, 17, 28, 31, 32, 35, 39]
>>> B
[39, 34, 34, 31, 27, 23, 19, 11, 3, 2]
Здесь "произведение" свернуто на я = 4
>>> [A[i]**2 + B[i]**2 for i in range(10)]
[1521, 1172, 1256, 1105, 1018, 1313, 1322, 1145, 1234, 1525]
>>> min(range(10), key=lambda i: A[i]**2 + B[i]**2)
4