Реализуйте функцию: для каждого элемента списка вернуть сумму всех остальных элементов.

Один раз вычислите общую сумму и для каждого элемента вычтите его значение. Для целых чисел это даёт результат за O(n) времени без повторного суммирования остальных элементов.

Короткий ответ

Что ответить на собеседовании

Один раз вычислите общую сумму и для каждого элемента вычтите его значение. Для целых чисел это даёт результат за O(n) времени без повторного суммирования остальных элементов.

Подробный разбор

Ответ с пояснениями

Один раз вычислите общую сумму и для каждого элемента вычтите его значение. Для целых чисел это даёт результат за O(n) времени без повторного суммирования остальных элементов.

def sum_others(values):
    total = sum(values)
    return [total - value for value in values]

print(sum_others([1, 2, 3]))  # [5, 4, 3]

Пустой список даёт пустой результат, один элемент — [0]. Дополнительная память O(n) нужна для результата. Алгоритм предполагает обычные числовые значения; для float порядок вычислений и погрешность могут отличаться от отдельного суммирования каждого поднабора, особенно при NaN и бесконечностях.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее