Найдите исходный массив из заданного массива, где 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 = 3Input: 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)