javascript - 计算JavaScript中给定数组中任意两个数字的平均值?
问题描述
我在一次采访中被问到这个问题。我无法解决它。
假设我们有一个数组let arr = [4,5,10,9,8]
。
用 JavaScript 编写代码来打印大于给定数组中任意两个元素的平均值的数字。
假设我决定计算 5 和 9 的平均值。平均值为 7。所以答案将是大于 7 的数字,即 8 9 和 10 应该打印在控制台上。
注意-我们必须找到任何两个元素的平均值然后检查,而不是所有数字的平均值。有人可以帮忙解释一下逻辑吗?
解决方案
这是 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);
推荐阅读
- java - 当另一个面板动态移动java swing时如何自动正确调整面板大小
- flutter - 如何在颤振中创建回调
- c# - 在设计文档树模型时,加载或查询该模型的方法是否应该是异步的?
- python - 大型稀疏矩阵的所有特征向量都为零
- c++ - 使用 WindowDisplayAffinity = 1 捕获 hWnd
- javascript - 链接滚动到顶部并且不跟随移动设备上的目标
- javascript - 如何将“ons-select”的值保存到 JavaScript 的变量中?
- python - 如何使用 BeautifulSoup 获取带有 rowspan 标签的行
- python - Pandas Dataframe + Flask,只请求一行
- c++ - 我正在尝试在 cpp 中获取当前日期和时间,但无法理解这些行