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).
Find the minimum element.
You may assume no duplicate exists in the array.
class Solution
{
public:
int findMin(vector<int> &num)
{
int n = num.size();
if(n==1)
return num[0];
int high = n-1;
int low = 0;
int max = 0;
int mid;
while(low <= high)
{
mid = (low+high)/2;
if(num[mid] < num[max])
high--;
else
{
max = mid;
low++;
}
}
if(max == n-1)
return num[0];
else
return num[max+1];
}
};LeetCode--Find Minimum in Rotated Sorted Array
原文:http://blog.csdn.net/shaya118/article/details/42746547