leetcode--Find Minimum in Rotated Sorted Array --C++

来源:互联网 发布:如何制作淘宝店招图片 编辑:程序博客网 时间:2024/05/23 00:08

问题:

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.

思路:典型的二分查找,而且这个题简单了,里面假设没有重复元素。若有重复元素,则要复杂一点,具体的请看:剑指offer---旋转数组的最小数字.还有就是下一个题:

Find Minimum in Rotated Sorted Array II

 

class Solution {public:    int findMin(vector<int>& nums) {        int start = 0;        int end = nums.size() - 1;        while(start < end)        {            if(nums[start] < nums[end])                return nums[start];            int mid = (start + end) / 2;            if(nums[start] <= nums[mid])   //这里的这个=号很关键,因为mid可能和start相同。                start = mid + 1;            else                end = mid;        }        return nums[start];            }};


0 0