链接:https://www.nowcoder.com/courses/1/6/2
来源:牛客网
定义局部最小的概念。arr长度为1时,arr[0]是局部最小。arr的长度为N(N>1)时,如果arr[0]
class Solution {
public:
int getLessIndex(vector<int> arr) {
int len=arr.size();
if(len==NULL)
return -1;
if(len==1)
return 0;
int left=1;
int right=len-2;
while(left<right)
{
if(len>1)
{
if(arr[0]<arr[1])
return 0;
if(arr[len-2]>arr[len-1])
return len-1;
else
{
int mid=left+(right-left)/2;
if(arr[mid]<arr[mid-1]&&arr[mid]<arr[mid+1])
return mid;
if(arr[mid]>arr[mid-1]&&arr[mid]<arr[mid+1])
{
right=mid-1;
}
else
{
left=mid+1;
}
}
}
}
return -1;
}
};