gpt4 book ai didi

algorithm - 如何确定一个范围内的数字?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:16:13 25 4
gpt4 key购买 nike

给定范围如 0..5.......20....25..40...50......100,我必须确定数字在哪个范围内。所以问题是确定数字在哪个范围内的最快方法,例如 aNum = 56 在 50....100 范围内。确定范围后,我会将范围的起始编号分配给 aNum,在本例中为 50。所以最后,aNum = 50。

我只是想知道它是否可以花费恒定的时间 O(1) 来完成它。

如有任何建议,我们将不胜感激。您可以使用任何数据结构来执行此操作。

最佳答案

对于显示的范围类型(​​可被 5 整除),以下算法很好:

  1. 按 5 分割所有范围(因此,例如 25-40 实际上是 3 个范围:25-29、30-34 和 35-39。

  2. 制作一个查找数组,将段键到范围。因此,例如,如果范围 25-39 为 #4,段 25-29 为 #15,则 30-34 为 #16,而 35-39 为 #17。然后 lookup[15] = 4, lookup[16]=4, lookup[17]=4, 等等

  3. 现在是除法的问题。将数字除以 5 得到 D,然后是范围 # = lookup[D]。

如果您的范围是不规则的并且不能被一个公共(public)数字整除,那么可以创建一个包含所有可能值的查找表,但会占用内存。

这是一个线性时间算法。

关于algorithm - 如何确定一个范围内的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com