1. 旋转数组由一个递增数组生成,所以一边的数组的元素会大于另一边数组的任意元素。所以当mid<right时mid和right在同一数组中,或者mid是元素小的一方时,搜索左边(包含mid),反之,mid>right 时,mid和right在不同数组,且right所在的数组必然是最小数组,故搜索右边 。 如果两者相等就去掉right 继续搜索。
```class Solution {
public:
    int minNumberInRotateArray(vector<int> rotateArray) {
        int left = 0, right = rotateArray.size() - 1;
        while(left < right)
        {
            int mid = (left + right) >> 1; //取中间值
            if(rotateArray[mid] > rotateArray[right])  left = mid + 1; //搜索右边
            else if(rotateArray[mid] < rotateArray[right])  right = mid; //搜索左边
            else right--; //继续搜索左边
        }
        return rotateArray[left];
    }
};