题目要求:
思路:
思路1:内置函数min,简洁(一般不会允许这么搞)
思路2:二分查找
代码如下:
思路1:
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param rotateArray int整型一维数组
# @return int整型
#
class Solution:
def minNumberInRotateArray(self , rotateArray: List[int]) -> int:
return min(rotateArray)
思路2:
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
# @param rotateArray int整型一维数组
# @return int整型
class Solution:
def minNumberInRotateArray(self , rotateArray: List[int]) -> int:
left , right = 0,len(rotateArray)-1
while left < right:
mid = left + (right - left)//2
if rotateArray[mid] > rotateArray[right]:
left = mid + 1
elif rotateArray[mid] < rotateArray[right]:
right = mid
else:
for i in range(left , right):
if i+1 < right and rotateArray[i+1] < rotateArray[i]:
return rotateArray[i+1]
return rotateArray[left]
return rotateArray[left]
# write code here
运行效果:
思路1:
思路2:
在这里插入图片描述