php - 如何从一组数字中找到数字的上限和下限?

标签 php algorithm

1st number:  50
2.           30
3.           70
4.           40
5.           11

其他数字是33

我需要计算最后一个数字介于哪两个数字之间(使用 php).. 有什么帮助吗?

最佳答案

遍历列表并找到以下两个值:

  • 小于目标数的最大数。
  • 大于您的目标数字的最小数字。

在伪代码中:

lowerlimit = Unknown
upperlimit = Unknown
for each n in list:
    if (n <= target) and (lowerlimit is Unknown or n > lowerlimit):
        lowerlimit = n
    if (n >= target) and (upperlimit is Unknown or n < upperlimit):
        upperlimit = n

那么 lowerlimitupperlimit 就是你的答案。该算法需要 O(n) 的时间和 O(1) 的额外空间。

如果你要用许多不同的目标数字测试同一个列表,那么首先需要 O(n log(n)) 时间对列表进行排序可能是有意义的,但是你可以在 O(log (n)) 时间使用二分查找。

关于php - 如何从一组数字中找到数字的上限和下限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2644819/

相关文章:

php - 使用 Laravel 5.5 从 Bootstrap 3.3.7 迁移到 4.0

php - 如何找出导致我的 PHP 应用程序挂起 Apache 服务器的原因?

algorithm - 少值整数数据的最优配对算法

c# - 反向抛光表示法 C# 无法正常工作

javascript - 为什么 tinymce 没有出现在动态添加的文本区域

php - 使用 javascript 从文本区域获取原始文本并将其发送到 PHP

php - 在 Symfony 2 中获取所有请求参数

java - 二叉搜索树找到最大节点并删除它(通用类)

mysql - 如何找到经常一起玩的玩家组

algorithm - 使用最差/平均/最佳案例进行渐近分析