剑指 Offer 11. 旋转数组的最小数字


思路:遍历数组,如果后一个元素比前一个元素小,说明从此开始旋转,输出后一个元素。若遍历结束仍未找到,则说明旋转从index=0开始,输出队首元素。

Python:

class Solution:
    def minArray(self, numbers: List[int]) -> int:
        if not numbers:
            return -1
        for i in range(1,len(numbers)):
            if numbers[i]<numbers[i-1]:
                return numbers[i]
        return numbers[0]

C++:

class Solution {
public:
    int minArray(vector<int>& numbers) {
        int len=numbers.size();
        if(len==0){
            return -1;
        }
        for(int i=1;i<len;i++){
            if(numbers[i]<numbers[i-1]){
                return numbers[i];
            }
        }
        return numbers[0];
    }
};

 

原创文章,作者:1402239773,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/245108.html

(0)
上一篇 2022年4月18日 03:53
下一篇 2022年4月18日 03:53

相关推荐

发表回复

登录后才能评论