首页 > 解决方案 > 计算JavaScript中给定数组中任意两个数字的平均值?

问题描述

我在一次采访中被问到这个问题。我无法解决它。

假设我们有一个数组let arr = [4,5,10,9,8]

用 JavaScript 编写代码来打印大于给定数组中任意两个元素的平均值的数字。

假设我决定计算 5 和 9 的平均值。平均值为 7。所以答案将是大于 7 的数字,即 8 9 和 10 应该打印在控制台上。

注意-我们必须找到任何两个元素的平均值然后检查,而不是所有数字的平均值。有人可以帮忙解释一下逻辑吗?

标签: javascriptarrays

解决方案


这是 O(n) 解决方案。找到 min 和 secondMin,取平均值,它会给你最小平均值。

    const values = [4, 5, 10, 9, 8];
    const minValue = Math.min(...values);
    values.splice(values.indexOf(minValue),1);
    const secondMinValue = Math.min(...values);
    const minAverage = (minValue + secondMinValue)/2;
    const result = values.filter(val => val > minAverage);

推荐阅读