Найдите исходный массив из заданного массива, где i-й элемент является средним значением первых i-х элементов.

Опубликовано: 21 Сентября, 2022

Учитывая массив arr[] из длина N, задача состоит в том, чтобы найти исходный массив таким образом, что каждый i -й элемент в данном массиве ( arr[i] ) является средним значением первых i элементов исходного массива.

Примеры:

Input: arr = {4 3 3 3} 
Output: 4 2 3 3
Explanation: (4) / 1 = 1, (4+2) / 2 = 3, (4+2+3) / 3 = 3, (4+2+3+3) / 4 = 3

Input: arr = {2 6 8 10} 
Output: 2 10 12 16
Explanation: (2) / 1 = 2, (2+10) / 2 = 6, (2+10+12) / 3 = 8, (2+10+12+16) / 4 = 10

Подход: Данная задача может быть решена с использованием математического подхода. Выполните следующие действия:

  • Инициализировать переменную sum первым элементом массива arr
  • Итерировать массив arr со 2-го индекса до конца и на каждой итерации:
    • Умножить текущий элемент arr[i] на текущий индекс + 1 (i + 1) и вычесть из него значение суммы
    • Добавьте полученный текущий элемент в переменную sum
  • Вернуть результирующий массив после модификации, так как он будет исходным массивом


Временная сложность: O(N)
Вспомогательное пространство: O(1)