剑指offer06-旋转数组的最小数字
题目描述
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。
输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。
示例
输入:[3,4,5,1,2]
返回值:1
知识点回顾
二分法
代码
# -*- coding:utf-8 -*- class Solution: def minNumberInRotateArray(self, rotateArray): # write code here if len(rotateArray)==0: return 0 if len(rotateArray)==1: return rotateArray[0] left=0 right=len(rotateArray)-1 while(rotateArray[left]>=rotateArray[right] and (right-left>1)): mid=left+int((right-left)/2) if rotateArray[mid]>=rotateArray[left]: left=mid else: right=mid return rotateArray[right]