九章算法 -递归九讲2021课程介绍:
递归(Recursion)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法,其核心思想是分治策略。 递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念。绝大多数编程语言支持函数的自调用,在这些语言中函数可以通过调用自身来进行递归。课程包含真题解析和习题训练,为各阶段IT人量身定制.五大递归应用场景:阶乘问题,二叉树深度,汉诺塔问题,斐波那契数列,排列组合问题等,九讲课程全覆盖!
第一章【互动】参数传递和递归
1.1 课程介绍
1.2 值传递
1.3 类的引用传递
1.4 数组的引用传递
1.5 包装类与不可修改类型的传参
1.6 递归三要素
1.7 内存中的堆和栈
第二章【互动】单向递归——循环与递归对比
2.1 二阶阶乘
2.2 尾递归
2.3 尾递归代码演示
2.4 尾递归改成迭代
2.5 颠倒二进制位
第三章【互动】单向递归——递归的妙用
3.1 上个章节回顾
3.2 两两交换链表中的节点
3.3 经典二分查找问题
3.4 快速幂
第四章【互动】双向递归——二叉树的遍历与递归树
4.1 上个章节回顾
4.2 二叉树概念
4.3 二叉树的遍历(执行流程)
4.4 二叉树的遍历(代码讲解)
4.5 斐波那契数列
4.6 汉诺塔问题
第五章【互动】双向递归——二叉树的分治
5.1 上个章节回顾
5.2 二叉树的最大深度
5.3 最大二叉树
5.4 前序遍历和中序遍历构造二叉树
5.5 中序遍历和后序遍历构造二叉树
第六章【互动】多向递归——组合类问题
6.1 上个章节回顾
6.2 子集(二叉树遍历解法)
6.3 子集(组合数思路解法)
6.4 子集 II
6.5 数字组合
第七章【互动】多向递归——排列类问题
7.1 上个章节回顾
7.2 全排列
7.3 带重复元素的排列
7.4 第k个排列
7.5 下一个排列
第八章【互动】非递归——二叉树类
8.1 上个章节回顾
8.2 递归问题如果用非递归解决
8.3 用手写栈模拟递归的方式解决二叉树遍历问题
8.4 用 Morris 算法解决二叉树的前序和中序遍历
8.5 用 Morris 算法解决二叉树的后序遍历
8.6 两种非递归解法的对比