首页 文章

在排序的数组中找到与n最接近的值,而不是经过

提问于
浏览
0

对于这个问题,我有一个排序的双精度数组 . 我需要能够快速有效地找到最接近但不超过n的值的索引 . 效率是关键,赋值状态可以在O(log n)中完成,因此我假设它可以通过某种修改的二进制搜索来完成 .

我知道之前已经问过这个问题,但是我发现所有的答案都是假设一个未排序的数组,或者只是通过整个数组循环比较差异 .

任何指导表示赞赏 . 谢谢 .

1 回答

  • 2

    是的,您可以使用修改后的二进制搜索来完成;只是像往常一样寻找数字;

    • 如果你找到它,那就是正确的数字(关闭,但不是结束)

    • 如果你没有't find it, if the last number you check is under, that'你的号码(你已经看过上面的号码,发现它太高了)

    • 如果你找到它并且你检查的最后一个号码结束了,我想你会得到如何找到最高号码 .

    请记住,还有一些错误条件需要考虑,你会做得很好:)

相关问题