Программа Javascript для среднего диапазона в массиве

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

Дан массив из n целых чисел. Вам дано q запросов. Напишите программу, которая выводит минимальное значение среднего в диапазоне от l до r для каждого запроса в новой строке.

Примеры :

Input : arr[] = {1, 2, 3, 4, 5}
        q = 3
        0 2
        1 3
        0 4
Output : 2
         3
         3
Here for 0 to 2 (1 + 2 + 3) / 3 = 2

Input : arr[] = {6, 7, 8, 10}
        q = 2
        0 3
        1 2
Output : 7
         7

Наивный подход: мы можем запустить цикл для каждого запроса от l до r и найти сумму и количество элементов в диапазоне. После этого мы можем вывести пол среднего значения для каждого запроса.

Выход :

2
3
3

Временная сложность: O(n*q), где q — количество запросов, а n — размер массива. Здесь в приведенном выше коде q равно 3, так как функция findMean используется 3 раза.
Вспомогательное пространство: O(1)

Эффективный подход: мы можем найти сумму чисел, используя числа, используя сумму префиксов. ПрефиксSum[i] обозначает сумму первых i элементов. Таким образом, сумма чисел в диапазоне от l до r будет иметь вид prefixSum[r] — prefixSum[l-1]. Количество элементов в диапазоне от l до r будет равно r – l + 1. Итак, теперь мы можем вывести среднее значение диапазона от l до r за O(1).

Выход:

2
3
3

Временная сложность : O(n+q), где q — количество запросов, а n — размер массива. Здесь в приведенном выше коде q равно 3, так как функция findMean используется 3 раза.
Вспомогательное пространство : O(k), где k=1000005.

Пожалуйста, обратитесь к полной статье о среднем диапазоне в массиве для получения более подробной информации!