【leetcode】Search in Rotated Sorted Array

来源:互联网 发布:百度人工智能api 编辑:程序博客网 时间:2024/06/05 20:45
class Solution {public:    int search(int A[], int n, int target) {        // Note: The Solution object is instantiated only once and is reused by each test case.        int sta=0,end=n-1;        while(sta<end)        {            int mid=(sta+end)/2;            if(A[sta]<=A[mid])//因为A中没有重复的元素,所以左半边排序好了            {//注意上面是A[mid]和A[sta]去比较,而不是A[mid]和A[mid-1]去比较!!                if(A[sta]<=target&&target<=A[mid])                    end=mid;                else                    sta=mid+1;            }            else//右半边排序好了            {                if(A[mid]<=target&&target<=A[end])                    sta=mid;                else                    end=mid-1;            }        }        if(end>=0&&end<=n-1&&A[end]==target)//这里写sta或者end都OK            return end;        else            return -1;    }};

原创粉丝点击