菜鸟笔记
提升您的技术认知

递归之求数组最大值-ag真人游戏

这个比较简单,想清楚基线条件和递归条件就可以了,直接看代码(vs直接运行):

#include
#include
using namespace std;
int arraymax(int data[], int length);
int main()
{
    int arr[] = {0, 5, 1, 3, 9, 2, 6, 7, 8, 4};
    int length = 10;
    int result;
    result = arraymax(arr, length);
    cout << result << endl;
    
}
int arraymax(int data[], int len)
{
    if (len == 1)
        return data[0];
    if (len == 2)//这一步可以不加,但是加上可以减少一层调用栈的深度
        return data[0] > data[1] ? data[0] : data[1];
    else
    {
        int t = data[len - 1];//把最后一位当成基准值,比较它和其他位的大小,返回大的
        return t > arraymax(data, len - 1) ? t : arraymax(data, len - 1);
    }
}

 

网站地图