学习笔记
递归终止条件
处理当前层
下探到下一层
清理当前层
回溯是不断的遍历在当前层可能的出现的情况找出想要的结果,如果当前层没有想要的结果就回退到上一层,不断的试错,用递归遍历,用回溯找到想要的结果。
分治是将大的问题拆分成相同的子问题,子问题在拆分成子问题,最后将这些子问题的结果合并起来
递归中止条件
处理当前层
拆分子问题 进入子问题
合并各个子问题的结果
清理当前层
11.16 14:32记一次做题的感受 看完第三周第7课实战解析后 打开实战题目 翻转二叉树 做题思路用递归定义一个中间变量 然后左子树和右子树交换之后递归调用左子树和右子树,打完代码也就一分钟。写的时候 总是有一个怀疑的念头 :应该是这样没错吧。提交代码后一次直接过了,实在有些错愕,有点不敢信能一次过,虽然是简单题,但是想想之前连题都不敢刷的人现在能一次过,实在有点欣慰。然后打开题解,看评论原来大家都是轻松的解决了,看来是有点自作多情了。。。。看题解完后用迭代又写了一遍。
N皇后问题本质上是全排列,在全排列的基础上进行了剪枝
层序遍历的齿形输出就是在层序遍历上加一个判断当前层的奇偶性
重排链表就是链表的快慢指针和反转链表和插入链表组合在一起
好多问题都在一些经典的题目上变形,在其基础上做一些判断,特殊处理得来的,深刻认知到练习这些经典的题并将原理理解透彻是很有必要的