二分思路,一个月前看答案做的,细节我自己也没抠太清楚
```python
class Solution:
    def findMin(self, nums: List[int]) -> int:
        if not nums: return None
        l,r = 0,len(nums)-1
        while l + 1 < r:
            mid = (l + r) >> 1
            # 第一种情况 左<中<右,说明区间内已经不含旋转点
            if nums[l] < nums[mid] < nums[r]:
                r = mid
            else:
                # 否则,区间内含有旋转点,需比较mid和left的关系
                if nums[mid] < nums[l]:
                    r = mid
                else:
                    l = mid
        return min(nums[l],nums[r])
```