Find Minimum in Rotated Sorted Array
Description:
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.
Code:
int findMinElement(vector<int>& nums, int indexLeft, int indexRight) { if (indexLeft < indexRight) { if ( nums[(indexLeft+indexRight)/2] < nums[indexRight]) return findMinElement(nums, indexLeft, (indexLeft+indexRight)/2);//注意:(indexLeft+indexRight)/2可能就是最小值 else return findMinElement(nums, (indexLeft+indexRight)/2+1, indexRight); } else return nums[indexLeft]; } int findMin(vector<int>& nums) { return findMinElement(nums, 0, nums.size()-1 ); }