参考
http://blog.youkuaiyun.com/linhuanmars/article/details/40449299
代码
class Solution {
public:
int findMin(vector<int> &num) {
if(num.size()==0)
return 0;
int l = 0;
int r = num.size()-1;
int minNum = num[0];
while(l<r-1)
{
int m = (l+r)/2;
if(num[l]<num[m])
{
minNum = min(num[l],minNum);
l = m+1;
}
else if(num[l]>num[m])
{
minNum = min(num[m],minNum);
r = m-1;
}
else
{
l++;
}
}
minNum = min(num[r],minNum);
minNum = min(num[l],minNum);
return minNum;
}
};
本文介绍了一种在已旋转的升序数组中查找最小元素的方法。通过使用C++实现的二分查找算法,该算法能在O(log n)的时间复杂度内找到最小值。文章提供了完整的代码示例并解释了关键步骤。
2280

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



