算法题:递增数组找和x值最接近值的第一个下标
说明:
- 最接近指差的绝对值最小
- 元素可重复
- 相同接近时取最小下标
- 时间复杂度要求O(logn)
例子:
{1, 2, 2, 3, 5, 6, 6, 9, 19}
x: 4 index: 3
x: 8 index: 7
x: 2 index: 1
x: 7 index: 5
x: 0 index: 0
x: 100 index: 8
方法一:
public class Main {
public static void main(String[] args) {
int[] arr={
1,2,2,3,5,6,6,9,19};
int[] res={
4,8,2,7,0,100};
int index;
for(int x:res){
index=find(arr, x);
System.out.println("index:"+index);
}
}
private static int find(int[] arr, int target){
int n=arr.length;
if(target<=arr[