【发布时间】:2011-11-17 10:10:29
【问题描述】:
问题是我有 5 个数字的数组:
300 295 250 105 100 95
所需的结果:由阈值指定的具有最小差异的最多数字。 如果您无法理解:在示例中,阈值为 5,中奖号码为 95,100,105 - 因为有 3 个号码彼此接近,而另一组 (295,300) 只有 2 个。
我会尽快给出更清晰的解释。
【问题讨论】:
-
不是很清楚...数字总是像你的例子那样排序吗?
-
这个问题没有很好的定义。假设您需要“运行阈值”,Wizard 先生的回答很好,尽管我理解您需要“固定阈值”。不同之处在于集合
{1,2,3,4}和阈值1:我认为最大的有效子集是{1,2,3}或{2,3,4},因为在中间值附近它们仅跨越1,但是运行阈值将接受整个集合{1,2,3,4}因为在连续 值之间只有1的差异。请说明您的要求。如果我的理解正确,我有一个相当简单的O(nlogn)解决方案。 -
好吧,如果你坚持最终结果我需要什么,基本上阈值可以运行 - 集合中的 1 个数字,如果阈值不够大,它可以是第 1 个,第 2 个或第 3 个,不管但最好的东西是最终集的中位数
-
现实生活中的例子:我有一组持续时间为 [5:00, 4:50, 4:00, 3:20, 3:19, 3:15] 的歌曲 - 想法是选择正确的曲目版本,为 3:20 或 3:19
-
哦,现在你失去了我。你能再举一个例子,并解释你是如何得到答案的吗?起初我以为您正在寻找成员与其直接邻居之间的差异不超过阈值的连续序列。
标签: javascript math logic algebra