递归判断长度为N的数组是不是递增数组。递归方法:记录最大的值,如果比这个值大,则继续,否则终止.
递归三部曲:
1. 明确递归函数的参数和返回值。(个人理解:注意参数已经更新)
2.明确终止条件
3.明确单层递归的逻辑
1.递归参数和返回值
这里参数已经给出,所以我们要明确的是,参数更新的逻辑
下一次传入的参数应该是N-1
所以返回值:
一个是递归函数fun(a, N - 1)
另一个是大小判断逻辑。
2.终止条件:
cpp
if (N <= 1) {
return true; // 只有一个元素,天然有序,停止递归
}
3.单层递归的逻辑:
检查数组最后两个元素之间的大小关系
cpp
a[N-1] > a[N-2]
4. 总结:
-
怎么变? (N 减小)
-
啥时停? (N <= 1)
-
当下干啥? (比较最后两个数)
cpp
bool fun(int a[], int N) {
if (N <= 1) {
return true;
}
return fun(a, N - 1) && (a[N-1] > a[N-2]);
}