数组_旋转数组中的最小元素
# -*- coding:utf-8 -*-
class Solution:
def minNumberInRotateArray(self, rotateArray):
# write code here
if len(rotateArray)==0:
return 0
left = 0
right = len(rotateArray)-1
while left < right:
mid = (left+right)//2
if rotateArray[mid] > rotateArray[right]:
left = mid + 1
elif rotateArray[mid] <= rotateArray[right]:
right = mid
return rotateArray[left]
思路:
参考答案1
# -*- coding:utf-8 -*-
class Solution:
def minNumberInRotateArray(self, rotateArray):
# write code here
if len(rotateArray)==0:
return 0
left = 0
right = len(rotateArray)-1
while left < right:
mid = (left+right)//2
if rotateArray[mid] > rotateArray[right]:
left = mid + 1 # 注意差别
elif rotateArray[mid] < rotateArray[left]:
right = mid # 注意差别,因为求最小值
else:
right -= 1 # 排除相等的情况
return rotateArray[left]