Минимальные числа, которые должны быть добавлены, чтобы среднее значение массива было равно 1
Учитывая массив arr[ ] размера N , задача состоит в том, чтобы найти минимальное количество операций, необходимых для того, чтобы сделать среднее значение массива arr[ ] равным 1. За одну операцию в конец массива может быть добавлено неотрицательное число.
Примеры:
Input: N = 3, arr = {1, 1, 1}
Output: 0
Explanation:
As it can be seen that mean of arr[ ], (1+1+1)/3 = 1,
Therefore 0 operations required to make array good.Input: N = 4, arr = {8, 4, 6, 2}
Output: 16
Explanation:
As the sum of the given array is 20 and number of element are 4.
Therefore we need to append 16 zero in the last of array, to make its mean equal to 1.
Подход: Вышеупомянутая проблема может быть решена с помощью суммы массива и количества элементов в массиве, т.е. N, как показано ниже:
- Если сумма массива меньше N, разница между ними может быть добавлена в массив, и, следовательно, требуется 1 операция.
- Если сумма массива равна N, то среднее значение будет равно 1, и, следовательно, требуется 0 операций.
- Если сумма массива больше N, то 0 может быть добавлен в массив (arraySum – N) раз. Следовательно, требуются операции (arraySum — N).
Выполните следующие шаги, чтобы решить проблему:
- Найдите сумму массива arr[ ], скажем, sum_arr.
- Если sum_arr >= N , выведите sum_arr – N .
- В противном случае выведите 1 .
Ниже приведена реализация описанного выше подхода.
Временная сложность: O(N)
Вспомогательное пространство: O(1)