📜  数组中范围平均值的Javascript程序

📅  最后修改于: 2022-05-13 01:57:49.330000             🧑  作者: Mango

数组中范围平均值的Javascript程序

给定一个包含 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 运行循环,并找到范围内元素的总和和数量。在此之后,我们可以打印每个查询的均值下限。

Javascript


Javascript


输出 :

2
3
3

时间复杂度: O(n)

有效方法:我们可以使用前缀求和的数字来找到数字的总和。 prefixSum[i] 表示前 i 个元素的总和。因此,从 l 到 r 范围内的数字总和将是 prefixSum[r] – prefixSum[l-1]。 l 到 r 范围内的元素数将为 r – l + 1。所以我们现在可以在 O(1) 中打印范围 l 到 r 的平均值。

Javascript


输出:

2
3
3

有关更多详细信息,请参阅有关数组范围平均值的完整文章!