【发布时间】:2021-02-27 21:22:00
【问题描述】:
我正在寻找一种有效的算法来找到一个未知整数,给定一个函数来告诉我它是否在给定的闭区间内。即,我正在寻找此签名的实现:
fun findInt(isInClosedInterval: (Pair<Int,Int>) -> Boolean): Int
我自己可能会想出一个算法,但我猜想已经存在一个算法,我不想重新发明轮子。如果您能指出 Java 平台上库中的函数,那将是理想的,但也可以仅提供算法或数学函数的名称。
我在想一个涉及二分查找的解决方案,但它似乎只适用于你想找到一个已知元素的位置,而我的元素(整数)是未知的。
【问题讨论】:
-
一个比二分搜索更合适的关键字,恕我直言,exponential search 因为您可能需要先初始化一些保证包含间隔。然后它可能只是简单地在每一半上分支,直到一半是单例。