您的位置:首页 > 其它

Find Minimum in Rotated Sorted Array leetcode

2016-02-10 10:18 381 查看
原题链接

直接贴代码,这道题是

search in rotated sorted array leetcode

的前面部分!

class Solution {
public:
int findMin(vector<int>& nums) {
if (nums.empty())
return -1;
int res = find(nums, 0, nums.size()-1);//好神奇,第二个参数无论减或者不减1,都不影响该题的结果
if (res == -1)
return -1;
return nums[res];
}
int find(vector<int>& nums, int l, int r)
{
if (l>r || l >= nums.size())
return -1;
int mid = (l + r) / 2;
if (nums[l] <= nums[mid])
{
int pos = find(nums, mid + 1, r);
if (pos == -1)
return l;
return nums[l]<nums[pos] ? l : pos;
}
else
{
int pos = find(nums, l, mid - 1);
if (pos == -1)
return mid;
return nums[mid]<nums[pos] ? mid : pos;
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: