实际在考察二分查找的方法算法
一个不包含重复元素的升序数组在通过旋转以后,能够获得下面可视化的折线图:数组
本题是没有重复元素的因此没有考虑元素相同的时候
return left和right均可以spa
本题里面有重复元素,因此得考虑left和right的值相同的时候索引
当中间节点和右边界点的值相同的时候,没法判断最小值在中间节点的左侧仍是右侧,也就没法判断改变左边界值仍是右边界值,所以不能随便忽略某一段元素,咱们只能肯定不管右边界点的值是否是最小值,数组中都有一个和他相同的中间节点值,所以就能够忽略右边界点的值,而后对右边界点往左侧移动一个索引,也就是right--,若是仍是和中间节点值同样就继续right--,重复直到右边界点right节点的值和中间节点的值不相同资源
return left和right均可以
可是上面这样right--至关于把相同的元素所有遍历了一遍,若是重复元素不少,那就须要遍历不少遍,耗资源it
找到两个相等以后就直接在里面遍历,不出循环了class