二分法:
    low 与 mid 比较:
        两种情况:1、low > mid :此情况low不必再讨论,但是很可能low +1部分 是最小的。所以low +=1
                  2、low >=mid : 此情况low部分很可能是最小的,但是由于出现旋转,所以high很可能小于low,
                                    此时出现两种情况:
                                        1、low >high 则我们直接从右半部分考虑,直接low = mid +1
                                       2、low <high 那么我们考虑左半部分,因为很可能左半部分也有小于low的情况。  # -*- coding:utf-8 -*-
class Solution:
    def minNumberInRotateArray(self, rotateArray):
        if rotateArray == None&nbs***bsp;len(rotateArray) == 0:
            return None
        low = 0
        high = len(rotateArray) -1
        while low < high:
            mid = (low + high) >> 1
            if rotateArray[mid] > rotateArray[low]:
                if rotateArray[high] < rotateArray[low]:
                    low = mid +1
                else:
                    high -=1
                
            elif rotateArray[mid] < rotateArray[high]:
                high = mid
            else:
                low +=1
        return rotateArray[low]