153. Find Minimum in Rotated Sorted Array

来源:互联网 发布:论文数据库 怎么查 编辑:程序博客网 时间:2024/05/05 19:50

153. Find Minimum in Rotated Sorted Array

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.

思路:如果nums[mid]<nums[high],说明后半部分是顺序的,且最小值在[start ... mid]之间。否则,说明有反转,最小值在后半区间。 

<span style="font-size:18px;">class Solution {    int binary_search(vector<int> & nums, int s, int e)    {        if(nums[s]<=nums[e])        return nums[s];        int mid=s+(e-s)/2;        if(nums[mid]>nums[e]) return binary_search(nums,mid+1,e);        else return binary_search(nums,s,mid);    }public:    int findMin(vector<int>& nums) {        int n=nums.size();        return binary_search(nums,0,n-1);    }};</span>


0 0
原创粉丝点击