最佳答案
如果您有一个已经排序的数字数组,只需使用 binary search algorithm 在排序数组中查找项目的插入点即可。插入点的索引为您提供小于目标数量的元素数量。
在您的评论中,您提出了两个很好的问题:
- 如果号码不在列表中怎么办?
要处理这个问题,您需要继续搜索,直到找到数字应该存在的点(如果存在的话),即当前元素大于 x 且前一个元素小于 x 的索引。
- 如果有重复怎么办?
要解决这个问题,不要在第一次找到元素时停止,而是继续搜索,直到下限和上限相遇。如果您达到等于 x 的值,请按照与发现过高数字相同的方式处理它并继续平分。
关于algorithm - 给定一个已排序的数字数组,如何找到小于 x 的数字的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3128759/