题意:
找出数组中的最小值
思路:二分 找出数组序列中最右的最大值,最左边的最小值
ps:有点坑,数组可能不旋转
code:
class Solution:
def findMin(self, nums: List[int]) -> int:
l = 0
r = len(nums) - 1
mid = (l + r) // 2
if nums[l] <= nums[r]:
return nums[l]
else:
while l < r:
mid = (l + r) // 2
if nums[l] < nums[mid]:
l=mid
if nums[r] > nums[mid]:
r=mid
if l + 1 == r: break
return nums[r]