查找给定值的k个最接近的元素
给定一个有序数组arr[]和一个值X,在arr[]中找到与X最接近的k个元素。请注意,如果元素存在于数组中,则不应该输出,只需要其他最接近的元素。
算法思路:
- 首先用二分搜索找到最接近X的交叉点(交叉点之前的元素小于或等于X,之后的元素大于或等于X)。这一步需要次。
- 一旦我们找到交叉点,我们可以比较交叉点两侧的元素来打印k个最接近的元素。这一步需要次。
1 | // Java program to find k closest elements to a given value |
时间复杂度: