LEETCODE: Search in Rotated Sorted Array

来源:互联网 发布:微信怎么打开淘宝链接 编辑:程序博客网 时间:2024/06/08 05:04

Suppose a sorted array is rotated at some pivot unknown to you beforehand.

(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

You are given a target value to search. If found in the array return its index, otherwise return -1.

You may assume no duplicate exists in the array.



class Solution {public:    int searchInternal(int A[], int start, int end, int target) {        if(start > end) return -1;                int mid = (start + end) >> 1;        int startval = A[start];        int midval = A[mid];        int endval = A[end];                if(midval == target)            return mid;                if(startval <= midval) {            if(target < midval && target >= startval) {                return searchInternal(A, start, mid - 1, target);            }            else {                return searchInternal(A, mid + 1, end, target);            }        }                //startval > midval        if(target > midval && target <= endval) {            return searchInternal(A, mid + 1, end, target);        }        else {            return searchInternal(A, start, mid - 1, target);        }            }        int search(int A[], int n, int target) {        return searchInternal(A, 0, n - 1, target);    }};





0 0
原创粉丝点击