Номер такси - целое число, которое может быть выражено как сумма двух кубов целых чисел двумя разными способами: a^3+b^3 = c^3+d^3
. Создайте алгоритм, чтобы найти все номера такси с а, b, c и d меньше N.
Просьба указать как пространственную, так и временную сложность в терминах N.
Я мог бы сделать это в o(N^2.logN)
время с пробелом O(N^2)
.
Лучший алгоритм, который я нашел до сих пор:
Формировать все пары: N^2
Сортировка суммы: N^2 logN
Найти дубликаты меньше N
Но это занимает пространство N^2
. Мы можем сделать лучше?