标签:
Problem:
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.
Analysis:
Binary search
Code:
class Solution{ public: int search(int A[], int n, int target){ int first = 0; int last = n; while (first != last){ int mid = first + (last - first) / 2; if (A[mid] == target) return mid; if (A[first] <= A[mid]){ if (A[first] <= target&&target < A[mid]) last = mid; else first = mid + 1; } else{ if (A[mid] < target&&target <= A[last - 1]) first = mid + 1; else last = mid; } } return -1; } };
LeetCode33 Search in Rotated Sorted Array
标签:
原文地址:http://www.cnblogs.com/easy-busy/p/4411081.html