所以基本上我有一个 n
数组整数(仅限正数)。我想要k
将此数组中的整数个数放入单独的数组 (k<n)
使得这 k 个数字之间的差异是所有其他数字之间的最小 k
数组中的整数对。
如果k是1,我只需要返回数组的最大整数。
我想用 JavaScript 实现这个。我了解如何针对值 k=1
运行此问题和k=2
。但我不明白这个问题的一般概念。
例如:
Array = [6,22,21,63,99,77]
我按升序对该数组进行排序。此后我不明白如何进一步进行。
最佳答案
对数组进行排序后,它变得类似于滑动窗口问题。
运行从 i=0
到 n-k
的循环并检查以下内容。
找出arr[i+k]
和arr[i]
之间的最小差异。发生这种情况的索引是您想要的 k 个整数的子集。
您可以查看这个link了解更多详细信息和编码帮助。
关于javascript - 找到 k 个数组元素,它们之间的差异最小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58179316/