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