二分搜索局部最小

来源:互联网 发布:windows原版壁纸 编辑:程序博客网 时间:2024/05/16 18:23

链接: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;    }};
0 0
原创粉丝点击