旋转数组的最小数字
题目描述
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
输入一个升序的数组的一个旋转,输出旋转数组的最小元素。
例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
数组可能包含重复项。
注意:数组内所含元素非负,若数组大小为0,请返回-1。
样例
输入:nums=[2,2,2,0,1]
输出:0
算法1
时间复杂度
取决于std::sort的时间复杂度,最坏 O(n^2) , 正常和平均为nO(logn)
C++ 代码
class Solution {
public:
int findMin(vector<int>& nums) {
if(nums.empty())
return -1;
std::sort(nums.begin(), nums.end());
return nums[0];
}
};
这std有点太费那啥了吧