题目

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。

输入一个升序的数组的一个旋转,输出旋转数组的最小元素。

数组可能包含重复项。

注意:数组内所含元素非负,若数组大小为 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;
    }
};

代码分析:升序数组的旋转数组,把握好升序

题目旋转数组的最小数字

最后修改:2022 年 01 月 09 日 12 : 58 PM
如果我的文章对你有用,请随意赞赏