Search in Rotated Sorted Array

来源:互联网 发布:php大型项目框架 编辑:程序博客网 时间:2024/05/18 21:41

 基本思想是二分查找,有一点需要修改一下:

A = [4,5,6,7,8,0,1,2,3]

如果 target <7 则需要 binarysearch(left,mid-1)和binarysearch(mid+1,right)

 

class Solution {    int binarySearch(int A[],int left ,int right, int t){        if(left>right)return -1;        int mid=(left+right)/2;                if(A[left]<=A[mid]){            if(A[mid]>t){                int tmp= binarySearch(A,left,mid-1,t);                if(tmp==-1)                    return binarySearch(A,mid+1,right,t);            }            else if(A[mid]<t){                return binarySearch(A,mid+1,right,t);            }else return mid;        }else{            if(A[mid]>t)                return binarySearch(A,left,mid-1,t);            else if(A[mid]<t){                int tmp= binarySearch(A,mid+1,right,t);                if(tmp==-1)                     return binarySearch(A,left,mid-1,t);            }else return mid;        }            }public:    int search(int A[], int n, int target) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        return binarySearch(A,0,n-1,target);            }};


 

原创粉丝点击