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.
解题思路:典型的二分查找法.
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int FindMinIN(vector<int> &num,int first,int last)
{
if (num[first] <= num[last])
return num[first];
int mid = (first + last) / 2;
if (num[mid] >= num[first])
return min(num[first], FindMinIN(num, mid + 1, last));
else
return min(num[mid], FindMinIN(num, first, mid-1));
}
int findMin(vector<int> &num) {
return FindMinIN(num, 0, num.size() - 1);
}
本文介绍了一种使用二分查找法解决寻找旋转排序数组中最小元素的问题的方法。通过递归的方式,算法能够有效地找到经过旋转后的排序数组中的最小值。
1196

被折叠的 条评论
为什么被折叠?



