思路:遍历数组,如果后一个元素比前一个元素小,说明从此开始旋转,输出后一个元素。若遍历结束仍未找到,则说明旋转从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];
    }
};