蓝桥杯备考:递归初阶

什么是递归?

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

为什么要有递归?

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

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

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

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

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

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);
    
    //合并有序序列




}
相关推荐
c238564 小时前
互斥锁高频面试题全解:从基础概念到底层实现,一文通关
java·c++·面试·职场和发展
雨辰AI10 小时前
【零基础实战】大模型入门面试 100 问:基础概念 + 环境实操(一问一答版,直接背诵)
人工智能·ai·面试·职场和发展·ai编程
qzhqbb11 小时前
字节面试复盘2026/07/03
面试·职场和发展
Purple Coder20 小时前
基于DGN的电工基础-8
职场和发展
Waay1 天前
面试口述版:个人对 Prometheus 完整理解
运维·学习·云原生·面试·职场和发展·kubernetes·prometheus
凯瑟琳.奥古斯特1 天前
K次取反最大化数组和解法(力扣1005)
开发语言·c++·算法·leetcode·职场和发展
码云数智-大飞1 天前
从 OC 平滑迁移 Swift 完整方案
职场和发展·蓝桥杯
水木流年追梦1 天前
agent面试必备31- AI Agent 核心进阶:工具路由(Tool Routing)
数据库·人工智能·oracle·面试·职场和发展·embedding
子建莫敌1 天前
ROS2 面试总结
面试·职场和发展
程序员杰哥1 天前
接口自动化测试项目框架详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试