给定一个有序的整数数列,可以有负数,可以有重复,找出a[i]=i的数并返回,如果没有返回-1.(百度二面)
分析:
传统二分法失效,考虑数列 -1, 0, 1, 2, 4, 6, 7, 8
以及数列 1, 2, 3, 4, 4, 4, 5, 6
无法判断具体我们要找的是在左边还是右边。a[mid] < mid or a[mid] > mid
故考虑使用递归二分查找mid左右的数组。
给定一个有序的整数数列,可以有负数,可以有重复,找出a[i]=i的数并返回,如果没有返回-1.(百度二面)
分析:
传统二分法失效,考虑数列 -1, 0, 1, 2, 4, 6, 7, 8
以及数列 1, 2, 3, 4, 4, 4, 5, 6
无法判断具体我们要找的是在左边还是右边。a[mid] < mid or a[mid] > mid
故考虑使用递归二分查找mid左右的数组。