11剑指OFFER之旋转数组中的最小的数字

参考资料:

[1]peng.tan的回答:https://www.nowcoder.com/profile/648947/codeBookDetail?submissionId=2954831

思路:

如果前面一个数大于后面一个数,那么后面一个数就是最小的

关键词:
自己的答案:
int MinNumInRotateArray(vector vecRotateArray)
{
    
    //如果前面一个数大于后买那一个数,那么后面那个数就是最小的
    
    
    int nLen = vecRotateArray.size();
    if (nLen == 0)
        return -1;
    int nTarget;
    bool bFlag = false;

    for (int i = 0; i < (nLen - 1); i++)
    {
        if (vecRotateArray[i] > vecRotateArray[i + 1])
        {
             nTarget = vecRotateArray[i + 1];
             bFlag = true;
             break;
        }   
    }
    //如果找到了,那么就返回该数
    if (bFlag == true)
        return nTarget;
    else
        return vecRotateArray[0];


}

你可能感兴趣的:(11剑指OFFER之旋转数组中的最小的数字)