我想知道是否有可能在排序的 List
中为不在 列表中的元素找到最接近的元素。
例如,如果我们有值 [1,3,6,7] 并且我们正在寻找最接近 4 的元素,它应该返回 3,因为 3 是数组中最大的数字,它小于 4。
我希望这是有道理的,因为英语不是我的母语。
原文由 drBet 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想知道是否有可能在排序的 List
中为不在 列表中的元素找到最接近的元素。
例如,如果我们有值 [1,3,6,7] 并且我们正在寻找最接近 4 的元素,它应该返回 3,因为 3 是数组中最大的数字,它小于 4。
我希望这是有道理的,因为英语不是我的母语。
原文由 drBet 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
由于集合已排序,您可以在
O( log n )
中进行修改后的二进制搜索:由于上面的大部分代码都是二进制搜索,您可以利用标准库中提供的
binarySearch(...)
并检查insertion point
的值: