题目
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
输入一个升序的数组的一个旋转,输出旋转数组的最小元素。
数组可能包含重复项。
注意
:数组内所含元素非负,若数组大小为 0,请返回 −1。
例如:
- 数组 {3,4,5,1,2} 为 {1,2,3,4,5} 的一个旋转,该数组的最小值为 1。
- 数据范围
- 数组长度 [0,90]。
示例
- 输入:nums = [2, 2, 2, 0, 1]
- 输出:0
代码
解法:
class Solution {
public:
int findMin(vector<int>& nums) {
/*nums 为升序的数组的一个旋转*/
if(nums.size() == 0) return -1;
int ret = nums[0];
for(int i = 0; i < nums.size(); ++i){
if(i > 0 && nums[i] < nums[i-1]){
ret = nums[i];
}
}
return ret;
}
};
代码分析
:升序数组的旋转数组,把握好升序
题目
:旋转数组的最小数字