二分查找问题是比较经典而且面试中常考的问题,实现起来还是容易出问题,能够过关的不多,请问实现一个二分查找有哪些容易错的地方(比如小数的处理、数据相加的范围等)?
变种一:(多个公司的面试都喜欢出)如果有序序列发生偏移即把序列的后面一部分截取放在前面,比如:
11 13 1 2 4 7 9
此时再给定一个数,查找其在序列中是否存在(返回其位置),请问如何实现?
变种二:同上题描述,找出序列中最小元素位置。
变种三:给定任意一个序列,找出其中的一个谷/峰,谷的定义为两边的数均大于某个数。
请问面试中还遇到过哪些二分查找的变种?