蓝桥杯备考:递归初阶

什么是递归?

相信我们已经不陌生了,函数自己调用自己就叫递归

为什么要有递归?

当处理主问题时,遇到子问题,子问题的解决方法和主问题是一样的,这时候我们就要用到递归

解决流程:问题---》相同的子问题------》 相同的子子问题 ---------》 不能拆分

我们要从宏观的角度来解决递归问题,不用每次都把细节展开图都画出来,没必要

我们就把递归函数想成一共黑盒子,我们赋予黑盒子一些任务,相信它能帮我们完成

写好一个递归分为几部分呢?

1.先找到相同的子问题

2.出口

好的,既然我们已经知道了如何利用宏观的思想来解决问题,那么我们现在就写一下后序遍历的递归代码吧

cpp 复制代码
void dfs(int root)
{
    if(root == 0) return;
    dfs(L[root]);
    dfs(R[root]);
    cout << root << " ";

}

再用宏观的思想写一下归并排序的代码

cpp 复制代码
void merge(int left,int right)
{
    if(left >= right) return;
    int mid = (left+right)/2;
    merge(left,mid);
    merge(mid+1,right);
    
    //合并有序序列




}
相关推荐
超级皮皮4 小时前
力扣热题之stack
算法·leetcode·职场和发展
YuTaoShao6 小时前
【LeetCode 热题 100】139. 单词拆分——(解法一)记忆化搜索
java·算法·leetcode·职场和发展
小南家的青蛙12 小时前
LeetCode第55题 - 跳跃游戏
算法·leetcode·职场和发展
蒋星熠14 小时前
全栈开发:从LAMP到云原生的技术革命
微服务·云原生·职场和发展·架构·系统架构·web·devops
测试19981 天前
Web自动化测试:测试用例流程设计
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
慧翔天地人才发展学苑1 天前
大厂求职 | 2026海尔校园招聘,启动!
职场和发展·跳槽·求职招聘·职场·秋招·职场晋升
秋名山码民1 天前
面试压力测试破解:如何从容应对棘手问题与挑战
面试·职场和发展·压力测试
爱coding的橙子2 天前
每日算法刷题Day63:8.19:leetcode 堆6道题,用时1h50min
算法·leetcode·职场和发展
Korloa2 天前
表达式(CSP-J 2021-Expr)题目详解
c语言·开发语言·数据结构·c++·算法·蓝桥杯·个人开发