Menu
CoddyTech

Product of Array Except Self

Дан массив целых чисел nums. Верните массив answer той же длины, где answer[i] — произведение всех элементов массива nums, кроме элемента с индексом i. Выполните это за время O(n) и без использования деления.

Функция

productExceptSelf(nums: integer-array) → integer-array
numsinteger-array
массив целых чисел, содержащий не менее двух элементов
Возвращаетinteger-array
массив, значение которого по индексу i равно произведению всех элементов, кроме nums[i]

Ограничения

  • 2 ≤ nums.length ≤ 104
  • -30 ≤ nums[i] ≤ 30
  • Произведение всех ненулевых значений в nums помещается в 32-разрядное целое число со знаком, поэтому любое промежуточное произведение тоже помещается.

Примеры

Ввод
nums = [2, 3, 4, 5]
Вывод
[60, 40, 30, 24]
Пояснение
Если пропустить 2, получится 3 × 4 × 5 = 60, а если пропустить 5 — 2 × 3 × 4 = 24. Для двух средних чисел всё работает так же: 2 × 4 × 5 = 40 и 2 × 3 × 5 = 30.

lock icon+14 скрытых тестов при отправке

challenge icon

Дополнительный вопрос

Можешь использовать только дополнительную память O(1), не считая возвращаемого массива?

Сбросить код
def productExceptSelf(nums):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Случай 3

Ввод

nums = [2, 3, 4, 5]

Ожидается

[60, 40, 30, 24]