【发布时间】:2020-01-31 02:20:23
【问题描述】:
如果有数组
let arr = [7,1,4,3,8],结果应该是 3,这是 4 和 7 之间的最大差值。
同样,let arr2 = [5,5,5,7,4] 的输出为 2(介于 5 和 7 之间),let arr3 = [6,3,2,5,9] 的输出为 3(介于 6 和 9 之间)。
找出最大差异的最佳优化解决方案是什么。
我的方法是对数组进行排序并找出连续元素之间的差异,然后使用Math.max(...differenceValues)找到最大值
PS:我不是在寻找数组中最大值和最小值之间的差异。当您在 x 轴上绘制图表时,上述问题是有意义的。
【问题讨论】:
-
这可能属于计算机科学堆栈交换:meta.stackexchange.com/questions/165519/…
-
所以排序和循环并保持最大值 arr.sort().reduce()
-
您可能想要添加一些您自己的代码来展示您尝试过的内容。原因是,ATM 问题看起来像是一个主观的操作方法/最好的方法,将被否决,并且可能会因为不是 SO 的好格式而被标记为关闭。
-
你实际上有多少个值?是不是非要排序才能大幅提升性能?我敢打赌,你可以比
O(n log n)做得更好(至少在平均情况下),但实现的复杂性成本很高。 -
看起来像这样,带有一个排序数组:stackoverflow.com/q/56550131/1447675
标签: javascript node.js