数组里面一定有两个以上元素,而且任意两个相邻数不相等
两头:
一个位置比后一个位置数小,称之为局部最小
一个位置比前一个位置数小,称之为局部最小
中间:
一个位置必须比前一个位置小,也要比后一个位置小,称之为局部最小
形象点理解
两头递增、递减,中间下凹
题目要求只返回一个局部最小的位置就可以了
先看0位置和n-1,有任何一个是直接返回
如果首尾都不是,那中间必然有,为什么呢?因为两头都是往中间递减的,从图像上来看,中间必有局部最小位置
然后此使看mid位置满不满足,满足直接返回,不满足
看两边趋势,如果有向两边的中间递减的趋势,则把范围缩小到那一半;如果两边都有则随便取一边就可以了,说明两边都有满足条件的解
这也是二分查找的思想,变体二分查找
实现
原文:https://www.cnblogs.com/kristse/p/getMin.html